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