feat: 更新项目配置,修改项目名称和路径;增强项目 API,支持通过仓库克隆项目
This commit is contained in:
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "vite-react",
|
"name": "code-graph",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"basename": "/root/vite-react",
|
"basename": "/root/code-graph",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"ui": "bunx shadcn@latest add ",
|
"ui": "bunx shadcn@latest add ",
|
||||||
"pub": "envision deploy ./dist -k vite-react -v 0.0.1 -y y -u"
|
"pub": "envision deploy ./dist -k code-graph -v 0.0.1 -y y -u"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist"
|
"dist"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ const api = {
|
|||||||
* @param data.filepath - {string} 项目根目录的绝对路径,必填
|
* @param data.filepath - {string} 项目根目录的绝对路径,必填
|
||||||
* @param data.repo - {string} 代码仓库标识,用于搜索结果展示和过滤,格式如 owner/repo,例如 kevisual/cnb,选填(默认自动从 git 配置读取)
|
* @param data.repo - {string} 代码仓库标识,用于搜索结果展示和过滤,格式如 owner/repo,例如 kevisual/cnb,选填(默认自动从 git 配置读取)
|
||||||
* @param data.name - {string} 项目显示名称,用于搜索结果展示,选填(默认使用目录名)
|
* @param data.name - {string} 项目显示名称,用于搜索结果展示,选填(默认使用目录名)
|
||||||
|
* @param data.type - {string} 项目类型,filepath或cnb-repo,默认为filepath
|
||||||
*/
|
*/
|
||||||
"add": {
|
"add": {
|
||||||
"path": "project",
|
"path": "project",
|
||||||
@@ -21,12 +22,6 @@ const api = {
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "项目根目录的绝对路径,必填"
|
"description": "项目根目录的绝对路径,必填"
|
||||||
},
|
},
|
||||||
"type": {
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"description": "项目类型,filepath 表示本地文件路径,cnb-repo 表示 CNB 仓库,选填(默认为 filepath)",
|
|
||||||
"type": "string",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"repo": {
|
"repo": {
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
"description": "代码仓库标识,用于搜索结果展示和过滤,格式如 owner/repo,例如 kevisual/cnb,选填(默认自动从 git 配置读取)",
|
"description": "代码仓库标识,用于搜索结果展示和过滤,格式如 owner/repo,例如 kevisual/cnb,选填(默认自动从 git 配置读取)",
|
||||||
@@ -38,15 +33,13 @@ const api = {
|
|||||||
"description": "项目显示名称,用于搜索结果展示,选填(默认使用目录名)",
|
"description": "项目显示名称,用于搜索结果展示,选填(默认使用目录名)",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"optional": true
|
"optional": true
|
||||||
}
|
|
||||||
},
|
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
},
|
||||||
"type": "api",
|
"type": {
|
||||||
"title": "CNB_BOARD",
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
"routerStatus": "active"
|
"description": "项目类型,filepath或cnb-repo,默认为filepath",
|
||||||
|
"type": "string",
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
@@ -71,14 +64,6 @@ const api = {
|
|||||||
"description": "要移除的项目根目录绝对路径,必填"
|
"description": "要移除的项目根目录绝对路径,必填"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
@@ -102,14 +87,6 @@ const api = {
|
|||||||
"description": "要暂停监听的项目根目录绝对路径,必填"
|
"description": "要暂停监听的项目根目录绝对路径,必填"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
@@ -133,14 +110,6 @@ const api = {
|
|||||||
"description": "要查询的项目根目录绝对路径,必填"
|
"description": "要查询的项目根目录绝对路径,必填"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
@@ -153,14 +122,6 @@ const api = {
|
|||||||
"key": "list",
|
"key": "list",
|
||||||
"description": "列出所有已注册的项目及其当前运行状态(路径、仓库名称、监听是否活跃等)",
|
"description": "列出所有已注册的项目及其当前运行状态(路径、仓库名称、监听是否活跃等)",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
@@ -229,13 +190,80 @@ const api = {
|
|||||||
"optional": true
|
"optional": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
"url": "/root/v1/cnb-dev",
|
||||||
"api": {
|
"source": "query-proxy-api"
|
||||||
"url": "/root/v1/cnb-dev"
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 初始化项目,通过root目录,搜索当前有git的项目列表,并将其注册到系统中
|
||||||
|
*
|
||||||
|
* @param data - Request parameters
|
||||||
|
* @param data.rootPath - {string} 搜索项目的根目录绝对路径,默认为 /workspace/projects
|
||||||
|
*/
|
||||||
|
"init": {
|
||||||
|
"path": "project",
|
||||||
|
"key": "init",
|
||||||
|
"description": "初始化项目,通过root目录,搜索当前有git的项目列表,并将其注册到系统中",
|
||||||
|
"metadata": {
|
||||||
|
"args": {
|
||||||
|
"rootPath": {
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"description": "搜索项目的根目录绝对路径,默认为 /workspace/projects",
|
||||||
|
"type": "string",
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"url": "/root/v1/cnb-dev",
|
||||||
|
"source": "query-proxy-api"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 列出当前工作区已注册的项目
|
||||||
|
*
|
||||||
|
* @param data - Request parameters
|
||||||
|
* @param data.rootPath - {string} 项目根目录绝对路径,默认为 /workspace/projects,指定后只列出该目录下的项目
|
||||||
|
*/
|
||||||
|
"list-projects": {
|
||||||
|
"path": "project",
|
||||||
|
"key": "list-projects",
|
||||||
|
"description": "列出当前工作区已注册的项目",
|
||||||
|
"metadata": {
|
||||||
|
"args": {
|
||||||
|
"rootPath": {
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"description": "项目根目录绝对路径,默认为 /workspace/projects,指定后只列出该目录下的项目",
|
||||||
|
"type": "string",
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"url": "/root/v1/cnb-dev",
|
||||||
|
"source": "query-proxy-api"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* clone 一个项目到projects目录下,并注册到系统中。
|
||||||
|
*
|
||||||
|
* @param data - Request parameters
|
||||||
|
* @param data.filepath - {string} 新项目根目录的绝对路径,默认在 /workspace/projects 下以仓库名创建子目录
|
||||||
|
* @param data.repo - {string} 代码仓库标识,用于搜索结果展示和过滤,格式如 owner/repo,例如 kevisual/cnb,必填
|
||||||
|
*/
|
||||||
|
"clone-cnb": {
|
||||||
|
"path": "project",
|
||||||
|
"key": "clone-cnb",
|
||||||
|
"description": "clone 一个项目到projects目录下,并注册到系统中。",
|
||||||
|
"metadata": {
|
||||||
|
"args": {
|
||||||
|
"filepath": {
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"description": "新项目根目录的绝对路径,默认在 /workspace/projects 下以仓库名创建子目录",
|
||||||
|
"type": "string",
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"type": "api",
|
"repo": {
|
||||||
"title": "CNB_BOARD",
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
"routerStatus": "active"
|
"type": "string",
|
||||||
|
"description": "代码仓库标识,用于搜索结果展示和过滤,格式如 owner/repo,例如 kevisual/cnb,必填"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
@@ -345,14 +373,6 @@ const api = {
|
|||||||
"optional": true
|
"optional": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
@@ -378,14 +398,6 @@ const api = {
|
|||||||
"description": "要读取的文件绝对路径,必填"
|
"description": "要读取的文件绝对路径,必填"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
@@ -416,14 +428,6 @@ const api = {
|
|||||||
"description": "文件内容的 base64 编码,必填"
|
"description": "文件内容的 base64 编码,必填"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
@@ -485,14 +489,6 @@ const api = {
|
|||||||
"optional": true
|
"optional": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
@@ -516,14 +512,6 @@ const api = {
|
|||||||
"description": "要删除的文件绝对路径,必填"
|
"description": "要删除的文件绝对路径,必填"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"viewItem": {
|
|
||||||
"api": {
|
|
||||||
"url": "/root/v1/cnb-dev"
|
|
||||||
},
|
|
||||||
"type": "api",
|
|
||||||
"title": "CNB_BOARD",
|
|
||||||
"routerStatus": "active"
|
|
||||||
},
|
|
||||||
"url": "/root/v1/cnb-dev",
|
"url": "/root/v1/cnb-dev",
|
||||||
"source": "query-proxy-api"
|
"source": "query-proxy-api"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,10 +93,17 @@ export const useCodeGraphStore = create<State>()((set, get) => ({
|
|||||||
addProject: async (filepath, name, type = 'filepath') => {
|
addProject: async (filepath, name, type = 'filepath') => {
|
||||||
try {
|
try {
|
||||||
const url = get().url || API_URL;
|
const url = get().url || API_URL;
|
||||||
const res = await projectApi.project.add(
|
let res: Result | null = null;
|
||||||
{ filepath, name: name || undefined, type },
|
if (type === 'filepath') {
|
||||||
{ url },
|
res = await projectApi.project.add(
|
||||||
);
|
{ filepath, name: name || undefined, type },
|
||||||
|
{ url },
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
res = await projectApi['project']['clone-cnb']({
|
||||||
|
repo: filepath,
|
||||||
|
}, { url });
|
||||||
|
}
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
toast.success('项目添加成功');
|
toast.success('项目添加成功');
|
||||||
await get().loadProjects();
|
await get().loadProjects();
|
||||||
|
|||||||
Reference in New Issue
Block a user