2025-03-18 17:13:54 +08:00
|
|
|
import { reqCatchV2, type catchRt } from '@/utils/catch';
|
2025-03-17 11:16:05 +08:00
|
|
|
import request from '@/utils/request';
|
2025-03-19 10:44:39 +08:00
|
|
|
import * as types from '@/api/repo/types';
|
2025-03-17 11:16:05 +08:00
|
|
|
|
|
|
|
|
// 详情-获取版本信息
|
2025-03-19 10:08:49 +08:00
|
|
|
export function releaseInfo(params: { softwareId: string }): Promise<any> {
|
2025-03-18 17:43:51 +08:00
|
|
|
const { softwareId } = params;
|
2025-03-17 11:16:05 +08:00
|
|
|
return request({
|
2025-03-18 17:43:51 +08:00
|
|
|
url: `/api/v1/repo/release/info?softwareId=${softwareId}`,
|
2025-03-17 11:16:05 +08:00
|
|
|
method: 'get'
|
|
|
|
|
});
|
|
|
|
|
}
|
2025-03-18 20:20:37 +08:00
|
|
|
|
2025-03-18 17:43:51 +08:00
|
|
|
// 详情-搜索结果列表
|
|
|
|
|
export function releasePage(data): Promise<any> {
|
|
|
|
|
return request({
|
|
|
|
|
url: `/api/v1/repo/release/page`,
|
|
|
|
|
method: 'post',
|
|
|
|
|
data
|
|
|
|
|
});
|
|
|
|
|
}
|
2025-03-18 17:45:08 +08:00
|
|
|
|
2025-03-18 19:51:01 +08:00
|
|
|
// 获取邀请列表
|
2025-03-18 17:13:54 +08:00
|
|
|
export function getInviteListData(): catchRt<any> {
|
2025-03-19 10:08:49 +08:00
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request(
|
|
|
|
|
{
|
|
|
|
|
url: '/api/v1/group/member/invite/list',
|
|
|
|
|
method: 'get'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
customError: true
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
);
|
2025-03-18 17:13:54 +08:00
|
|
|
}
|
|
|
|
|
|
2025-03-18 19:51:01 +08:00
|
|
|
// 处理邀请
|
2025-03-18 17:13:54 +08:00
|
|
|
export function acceptInvite(params): catchRt<any> {
|
2025-03-19 10:08:49 +08:00
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request(
|
|
|
|
|
{
|
|
|
|
|
url: '/api/v1/group/member/invite/accept',
|
|
|
|
|
method: 'post',
|
|
|
|
|
data: params
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
customError: true
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
);
|
2025-03-18 17:13:54 +08:00
|
|
|
}
|
2025-03-18 19:51:01 +08:00
|
|
|
|
|
|
|
|
// 发送订阅
|
|
|
|
|
export function subscribeSoftware(params): catchRt<any> {
|
2025-03-19 10:08:49 +08:00
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request(
|
|
|
|
|
{
|
|
|
|
|
url: '/api/v1/alert/subscribe',
|
|
|
|
|
method: 'post',
|
|
|
|
|
data: params
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
customError: true
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
);
|
2025-03-18 19:51:01 +08:00
|
|
|
}
|
2025-03-18 20:26:52 +08:00
|
|
|
|
2025-03-18 20:20:37 +08:00
|
|
|
// 获取高级筛选语言列表
|
|
|
|
|
export function searchLanguageList() {
|
|
|
|
|
return request({
|
|
|
|
|
url: `/api/v1/repo/lan/list`,
|
|
|
|
|
method: 'get'
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取首页公告列表
|
|
|
|
|
export function getHomeNoticeList() {
|
|
|
|
|
return request({
|
|
|
|
|
url: '/api/v1/home/notice/list',
|
|
|
|
|
method: 'get',
|
|
|
|
|
params: {}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取依赖关系列表
|
|
|
|
|
export function getDepencyList(softwareId: string) {
|
|
|
|
|
return request({
|
2025-03-18 22:01:02 +08:00
|
|
|
url: '/api/v1/repo/dependency/info',
|
|
|
|
|
method: 'POST',
|
2025-03-19 10:08:49 +08:00
|
|
|
data: {
|
2025-03-18 22:01:02 +08:00
|
|
|
softwareId: 47,
|
|
|
|
|
current: 1,
|
|
|
|
|
size: 20
|
|
|
|
|
}
|
2025-03-18 20:20:37 +08:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取AI修复建议
|
2025-03-19 21:43:36 +08:00
|
|
|
export function getRepairInfo(data) {
|
2025-03-18 20:20:37 +08:00
|
|
|
return request({
|
|
|
|
|
url: '/api/v1/repo/repair/info',
|
2025-03-18 22:01:02 +08:00
|
|
|
method: 'POST',
|
2025-03-19 21:43:36 +08:00
|
|
|
data
|
2025-03-18 22:01:02 +08:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取许可证列表
|
|
|
|
|
export function getLicenseList() {
|
|
|
|
|
return request({
|
2025-03-19 13:13:35 +08:00
|
|
|
url: '/api/v1/repo/license/info',
|
|
|
|
|
method: 'POST',
|
|
|
|
|
data: {
|
|
|
|
|
"current": 1,
|
|
|
|
|
"size": 10,
|
|
|
|
|
"softwareId": 47
|
2025-03-19 10:08:49 +08:00
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取详情漏洞列表
|
|
|
|
|
export function getVulnerabilityList() {
|
|
|
|
|
return request({
|
|
|
|
|
url: '/api/v1/repo/vulnerability/page',
|
|
|
|
|
method: 'GET',
|
|
|
|
|
params: {
|
|
|
|
|
current: 1,
|
|
|
|
|
size: 10,
|
|
|
|
|
softwareId: 47
|
2025-03-18 22:01:02 +08:00
|
|
|
}
|
2025-03-18 20:20:37 +08:00
|
|
|
});
|
2025-03-18 20:26:52 +08:00
|
|
|
}
|
2025-03-19 10:44:39 +08:00
|
|
|
|
2025-03-19 10:34:17 +08:00
|
|
|
// 获取漏洞数据
|
|
|
|
|
export const getVulnList = (data): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/repo/vulnerability/page`,
|
|
|
|
|
method: 'post',
|
2025-03-19 12:08:19 +08:00
|
|
|
data
|
2025-03-19 10:34:17 +08:00
|
|
|
})
|
|
|
|
|
);
|
2025-03-19 12:08:19 +08:00
|
|
|
};
|
2025-03-19 10:34:17 +08:00
|
|
|
|
2025-03-19 12:31:02 +08:00
|
|
|
// 获取SBOM依赖树
|
|
|
|
|
export const dependencyTree = (softwareId: any): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/repo/dependency/tree`,
|
|
|
|
|
method: 'POST',
|
|
|
|
|
data: {
|
|
|
|
|
softwareId,
|
|
|
|
|
current: 1,
|
|
|
|
|
size: 99999
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
};
|
2025-03-19 13:04:13 +08:00
|
|
|
// 获取开发者社区信息
|
|
|
|
|
export const communityInfo = (softwareId: any): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/repo/community/info`,
|
|
|
|
|
method: 'POST',
|
|
|
|
|
data: {
|
|
|
|
|
softwareId
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
};
|
2025-03-19 12:31:02 +08:00
|
|
|
|
|
|
|
|
// 编辑用户信息(包含订阅默认预警方式)
|
|
|
|
|
export const userEdit = (data: any): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/user/edit`,
|
|
|
|
|
method: 'POST',
|
|
|
|
|
data
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
};
|
2025-03-19 10:34:17 +08:00
|
|
|
|
|
|
|
|
// 获取漏洞数据
|
|
|
|
|
export const getVulnDetail = (data): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/repo/vulnerability/info`,
|
|
|
|
|
method: 'POST',
|
2025-03-19 12:08:19 +08:00
|
|
|
data
|
2025-03-19 10:34:17 +08:00
|
|
|
})
|
|
|
|
|
);
|
2025-03-19 12:31:02 +08:00
|
|
|
};
|
2025-03-19 10:45:16 +08:00
|
|
|
|
2025-03-19 10:44:39 +08:00
|
|
|
// 迁移批量导入
|
2025-03-19 12:31:02 +08:00
|
|
|
export function repoImport(data: types.commonRepoReqType) {
|
2025-03-19 10:44:39 +08:00
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/home/software/valid`,
|
|
|
|
|
method: 'post',
|
|
|
|
|
data,
|
|
|
|
|
headers: {
|
2025-03-19 12:31:02 +08:00
|
|
|
'Content-Type': 'multipart/form-data' // 设置请求头
|
|
|
|
|
}
|
2025-03-19 10:44:39 +08:00
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
}
|
2025-03-19 11:14:12 +08:00
|
|
|
|
|
|
|
|
// 个人中心-获取预警列表
|
|
|
|
|
export const getNoticeList = (data): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/alert/notice/list`,
|
|
|
|
|
method: 'POST',
|
2025-03-19 12:31:02 +08:00
|
|
|
data
|
2025-03-19 11:14:12 +08:00
|
|
|
})
|
|
|
|
|
);
|
2025-03-19 12:31:02 +08:00
|
|
|
};
|
2025-03-19 11:14:12 +08:00
|
|
|
|
|
|
|
|
// 个人中心-获取组织级预警列表
|
|
|
|
|
export const getgroupNoticeList = (data): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/alert/group/notice/list`,
|
|
|
|
|
method: 'POST',
|
2025-03-19 12:31:02 +08:00
|
|
|
data
|
2025-03-19 11:14:12 +08:00
|
|
|
})
|
|
|
|
|
);
|
2025-03-19 12:31:02 +08:00
|
|
|
};
|
2025-03-19 12:34:08 +08:00
|
|
|
|
|
|
|
|
// 个人中心-获取订阅列表
|
|
|
|
|
export const getSubscribeList = (data): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/alert/subscribe/list`,
|
|
|
|
|
method: 'POST',
|
|
|
|
|
data,
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 个人中心-获取组织级订阅列表
|
|
|
|
|
export const getGroupSubscribeList = (data): Promise<any> => {
|
|
|
|
|
return reqCatchV2(() =>
|
|
|
|
|
request({
|
|
|
|
|
url: `/api/v1/alert/group/subscribe/list`,
|
|
|
|
|
method: 'POST',
|
|
|
|
|
data,
|
2025-03-19 10:44:39 +08:00
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
}
|