import { queryOne } from '../../../utils/db' import { requireAuth } from '../../../utils/session' import { syncGitRepository } from '../../../utils/git-sync' import { syncSvnRepository } from '../../../utils/svn-sync' /** * 저장소 동기화 (수동) * POST /api/repository/[id]/sync */ export default defineEventHandler(async (event) => { await requireAuth(event) const repoId = parseInt(getRouterParam(event, 'id') || '0') if (!repoId) { throw createError({ statusCode: 400, message: '저장소 ID가 필요합니다.' }) } // 저장소 정보 확인 const repo = await queryOne(` SELECT r.*, s.server_type FROM wr_repository r JOIN wr_vcs_server s ON r.server_id = s.server_id WHERE r.repo_id = $1 `, [repoId]) if (!repo) { throw createError({ statusCode: 404, message: '저장소를 찾을 수 없습니다.' }) } if (repo.server_type === 'GIT') { const result = await syncGitRepository(repoId) return result } else if (repo.server_type === 'SVN') { const result = await syncSvnRepository(repoId) return result } return { success: false, message: '지원하지 않는 서버 타입입니다.' } })