32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { requireAuth } from '../../../../utils/session'
|
|
import { syncProjectGitRepositories } from '../../../../utils/git-sync'
|
|
import { syncProjectSvnRepositories } from '../../../../utils/svn-sync'
|
|
|
|
/**
|
|
* 프로젝트 커밋 새로고침 (모든 저장소 동기화)
|
|
* POST /api/project/[id]/commits/refresh
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
await requireAuth(event)
|
|
const projectId = parseInt(getRouterParam(event, 'id') || '0')
|
|
|
|
if (!projectId) {
|
|
throw createError({ statusCode: 400, message: '프로젝트 ID가 필요합니다.' })
|
|
}
|
|
|
|
// Git과 SVN 모두 동기화
|
|
const gitResult = await syncProjectGitRepositories(projectId)
|
|
const svnResult = await syncProjectSvnRepositories(projectId)
|
|
|
|
const allResults = [...gitResult.results, ...svnResult.results]
|
|
const allSuccess = allResults.every(r => r.success)
|
|
|
|
return {
|
|
success: allSuccess,
|
|
message: allSuccess
|
|
? `${allResults.length}개 저장소 동기화 완료`
|
|
: '일부 저장소 동기화 실패',
|
|
results: allResults
|
|
}
|
|
})
|