feat: complete Git Repo Manager MVP implementation

Backend (Phase 1-6):
- Pydantic schemas for request/response validation
- Service layer (SSH Key, Server, Repo, Sync)
- API routes with authentication
- FastAPI main application with lifespan management
- ORM models (SshKey, Server, Repo, SyncLog)

Frontend (Phase 7):
- Vue 3 + Element Plus + Pinia + Vue Router
- API client with Axios and interceptors
- State management stores
- All page components (Dashboard, Servers, Repos, SyncLogs, SshKeys, Settings)

Deployment (Phase 8):
- README with quick start guide
- Startup script (start.sh)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
panw
2026-03-30 16:30:13 +08:00
parent 960056c88c
commit 44921c5646
46 changed files with 6533 additions and 2 deletions

View File

@@ -0,0 +1,33 @@
import api from './index'
export const syncLogsApi = {
// Get all sync logs with pagination
getAll(params) {
return api.get('/sync-logs', { params })
},
// Get sync log by ID
getById(id) {
return api.get(`/sync-logs/${id}`)
},
// Get logs by server ID
getByServerId(serverId, params) {
return api.get(`/sync-logs/server/${serverId}`, { params })
},
// Get logs by repository ID
getByRepoId(repoId, params) {
return api.get(`/sync-logs/repo/${repoId}`, { params })
},
// Get logs by status
getByStatus(status, params) {
return api.get(`/sync-logs/status/${status}`, { params })
},
// Delete old logs
deleteOld(days) {
return api.delete('/sync-logs/old', { params: { days } })
}
}