226 lines
4.0 KiB
JavaScript
226 lines
4.0 KiB
JavaScript
/**
|
||
* 项目管理相关 API
|
||
*/
|
||
import request from '@/utils/request'
|
||
|
||
/**
|
||
* 获取我的项目列表
|
||
*/
|
||
export function getMyProjects() {
|
||
return request({
|
||
url: '/projects/',
|
||
method: 'get',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取我创建的项目列表
|
||
*/
|
||
export function getOwnedProjects() {
|
||
return request({
|
||
url: '/projects/my',
|
||
method: 'get',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取我参与的项目列表
|
||
*/
|
||
export function getSharedProjects() {
|
||
return request({
|
||
url: '/projects/shared',
|
||
method: 'get',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 创建项目
|
||
*/
|
||
export function createProject(data) {
|
||
return request({
|
||
url: '/projects/',
|
||
method: 'post',
|
||
data,
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取项目详情
|
||
*/
|
||
export function getProject(projectId) {
|
||
return request({
|
||
url: `/projects/${projectId}`,
|
||
method: 'get',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 更新项目信息
|
||
*/
|
||
export function updateProject(projectId, data) {
|
||
return request({
|
||
url: `/projects/${projectId}`,
|
||
method: 'put',
|
||
data,
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 删除项目
|
||
*/
|
||
export function deleteProject(projectId) {
|
||
return request({
|
||
url: `/projects/${projectId}`,
|
||
method: 'delete',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 转移项目所有权
|
||
*/
|
||
export function transferProject(projectId, newOwnerId) {
|
||
return request({
|
||
url: `/projects/${projectId}/transfer`,
|
||
method: 'post',
|
||
data: { new_owner_id: newOwnerId },
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 启动项目导出任务
|
||
*/
|
||
export function startProjectExport(projectId) {
|
||
return request({
|
||
url: `/projects/${projectId}/export`,
|
||
method: 'post',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取项目导出任务状态
|
||
*/
|
||
export function getProjectExportStatus(projectId, taskId) {
|
||
return request({
|
||
url: `/projects/${projectId}/export/${taskId}`,
|
||
method: 'get',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 下载项目导出 ZIP
|
||
*/
|
||
export function downloadProjectExport(projectId, taskId) {
|
||
return request({
|
||
url: `/projects/${projectId}/export/${taskId}/download`,
|
||
method: 'get',
|
||
responseType: 'blob',
|
||
timeout: 0,
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取项目成员
|
||
*/
|
||
export function getProjectMembers(projectId) {
|
||
return request({
|
||
url: `/projects/${projectId}/members`,
|
||
method: 'get',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 添加项目成员
|
||
*/
|
||
export function addProjectMember(projectId, data) {
|
||
return request({
|
||
url: `/projects/${projectId}/members`,
|
||
method: 'post',
|
||
data,
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 删除项目成员
|
||
*/
|
||
export function removeProjectMember(projectId, userId) {
|
||
return request({
|
||
url: `/projects/${projectId}/members/${userId}`,
|
||
method: 'delete',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* Git Pull
|
||
*/
|
||
export function gitPull(projectId, repoId = null, force = false, syncScope = null, subPath = '') {
|
||
return request({
|
||
url: `/projects/${projectId}/git/pull`,
|
||
method: 'post',
|
||
params: { repo_id: repoId, force, sync_scope: syncScope || undefined, sub_path: subPath || undefined }
|
||
})
|
||
}
|
||
|
||
/**
|
||
* Git Push
|
||
*/
|
||
export function gitPush(projectId, repoId = null, force = false, syncScope = null, subPath = '') {
|
||
return request({
|
||
url: `/projects/${projectId}/git/push`,
|
||
method: 'post',
|
||
params: { repo_id: repoId, force, sync_scope: syncScope || undefined, sub_path: subPath || undefined }
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取Git仓库列表
|
||
*/
|
||
export function getGitRepos(projectId) {
|
||
return request({
|
||
url: `/projects/${projectId}/git-repos`,
|
||
method: 'get',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 添加Git仓库
|
||
*/
|
||
export function createGitRepo(projectId, data) {
|
||
return request({
|
||
url: `/projects/${projectId}/git-repos`,
|
||
method: 'post',
|
||
data,
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 更新Git仓库
|
||
*/
|
||
export function updateGitRepo(projectId, repoId, data) {
|
||
return request({
|
||
url: `/projects/${projectId}/git-repos/${repoId}`,
|
||
method: 'put',
|
||
data,
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 删除Git仓库
|
||
*/
|
||
export function deleteGitRepo(projectId, repoId) {
|
||
return request({
|
||
url: `/projects/${projectId}/git-repos/${repoId}`,
|
||
method: 'delete',
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取Git仓库远端目录结构(用于选择同步目录)
|
||
*/
|
||
export function getGitRepoDirectories(projectId, repoId = null) {
|
||
return request({
|
||
url: `/projects/${projectId}/git/directories`,
|
||
method: 'post',
|
||
params: { repo_id: repoId || undefined },
|
||
})
|
||
}
|