{"id":20539162,"url":"https://github.com/catouse/zentao-api","last_synced_at":"2025-04-14T07:51:31.562Z","repository":{"id":41558684,"uuid":"339666969","full_name":"catouse/zentao-api","owner":"catouse","description":"JavaScript client libary for ZenTao SDK http://www.zentao.net/book/api/setting-369.html","archived":false,"fork":false,"pushed_at":"2021-03-13T06:06:09.000Z","size":307,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T21:38:16.361Z","etag":null,"topics":["api","client","javascript","sdk","zentao"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/catouse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-17T09:11:46.000Z","updated_at":"2024-09-21T13:48:09.000Z","dependencies_parsed_at":"2022-07-07T18:22:28.458Z","dependency_job_id":null,"html_url":"https://github.com/catouse/zentao-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catouse%2Fzentao-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catouse%2Fzentao-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catouse%2Fzentao-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catouse%2Fzentao-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/catouse","download_url":"https://codeload.github.com/catouse/zentao-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248844075,"owners_count":21170486,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","client","javascript","sdk","zentao"],"created_at":"2024-11-16T00:49:26.075Z","updated_at":"2025-04-14T07:51:31.530Z","avatar_url":"https://github.com/catouse.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [zentao-api](https://github.com/catouse/zentao-api)\n\n[![CI](https://github.com/catouse/zentao-api/actions/workflows/main.yml/badge.svg)](https://github.com/catouse/zentao-api/actions/workflows/main.yml)\n\n禅道 API 调用模块。\n\n## 使用方法\n\n### 安装\n\n```bash\nnpm install --save zentao-api\n```\n\n### 请求任何禅道 API\n\n通过构建 `Zentao` API 调用实例，你可以使用链式方法 ``zentao.m(moduleName).f(methodName)...get()`` 来非常方便调用禅道任何 API。\n\n```js\nimport { Zentao } form 'zentao-api';\n\n// 创建一个禅道 API 调用对象\nconst zentao = new Zentao({\n  \turl: 'https://demo.zentao.net/',\n  \taccount: 'demo',\n    password: '123456'\n});\n\n// 调用 product-all 获取所有产品信息\nconst productAllResult = await zentao\n  \t.m('product')\n  \t.f('all')\n    .get();\n\n// 输出产品列表\nconsole.log('All products', productAllResult.data.products);\n\n// 调用 product-view 获取产品详细信息\nconst productViewResult = await zentao\n\t\t.m('product')\n    .f('view')\n    .withParams({productID: 1})\n    .get();\n\n// 输出产品信息\nconsole.log('All products', productViewResult.data.prodcut);\n\n// 调用 prodcut-add 添加新的产品到禅道\nconst productCreateResult = await zentao\n    .m('product')\n    .f('create')\n    .post({\n      name: 'New product',\n      code: 'new_product_code'\n    });\n\nif (productCreateResult.status) {\n  \tconsole.log('\"New product\" added.');\n}\n```\n\n你可以访问 \u003chttps://catouse.github.io/zentao-api/\u003e 来查看所有可用 API 和详细示例。\n\n### 禅道 12 常用方法调用\n\n针对禅道 12 版本，通过内置的 `Zentao12` 调用类可以直接调用一些常见方法：\n\n```js\nimport { Zentao12 } form 'zentao-api';\n\n// 创建一个禅道12 API 调用对象\nconst zentao = new Zentao12({\n  \turl: 'https://demo.zentao.net/',\n  \taccount: 'demo',\n    password: '123456'\n});\n\n// 调用 product-all 获取所有产品信息\nconst productAllResult = await zentao.getProductList();\n// 输出产品列表\nconsole.log('All products', productAllResult.data.products);\n\n// 调用 product-view 获取产品详细信息\nconst productViewResult = await zentao.getProduct({productID: 1})\n// 输出产品信息\nconsole.log('All products', productViewResult.data.prodcut);\n\n// 调用 prodcut-add 添加新的产品到禅道\nconst productCreateResult = await zentao.addProduct({\n    name: 'New product',\n    code: 'new_product_code'\n});\nif (productCreateResult.status) {\n  \tconsole.log('\"New product\" added.');\n}\n```\n\n `Zentao12` 实例上所有可用的方法包括：\n\n* addBug\n* addDept\n* addProduct\n* addProject\n* addTask\n* addUser\n* finishTask\n* getBug\n* getBugCreateParams\n* getBugList\n* getBugResolveParams\n* getDeptList\n* getProduct\n* getProductCreateParams\n* getProductList\n* getProject\n* getProjectCreateParams\n* getProjectList\n* getTask\n* getTaskCreateParams\n* getTaskFinishParams\n* getTaskList\n* getUserCreateParams\n* getUserList\n* resolveBug\n\n`Zentao12` 继承自 `Zentao`，所以你仍然可以在 `Zentao12` 上调用 `zentao.m().f()...get()` 链式方法来请求禅道提供的任何 API。\n\n你可以访问 \u003chttps://catouse.github.io/zentao-api/\u003e 来查看所有可用 API 和详细示例。\n\n## 开发\n\n该项目框架基于 [`TSdx`](https://tsdx.io/)，完全使用 [TypeScript](https://www.typescriptlang.org/) 开发。\n\n如果希望参与本项目开发，可以先了解以下内容。\n\n### 启动开发模式\n\n在开发目录执行 `npm install` 来安装依赖，然后执行如下命令启动开发模式：\n\n```bash\nnpm start\n```\n\n该命令会立即编译项目，并且在 /dist 目录生成编译后的文件，编译完成后改命令并不会退出，而是持续监听 `src/` 目录下的文件变更，并适时自动重新编译。\n\n### 构建\n\n如果仅仅需要一次构建编译，只需要执行：\n\n```bash\nnpm build\n```\n\n### 测试\n\n该项目使用 `jest` 进行测试，执行如下命令即可：\n\n```bash\nnpm test\n```\n\n### 生成 API 文档\n\n该项目使用 [TypeDoc](https://typedoc.org/) 来根据源码中的注视自动生成 API 文档，只需要执行如下命令：\n\n```bash\nnpm run doc\n```\n\n### 包大小分析\n\n该项目使用 [`size-limit`](https://github.com/ai/size-limit) 来帮助分析包大小，只需要执行如下命令：\n\n```bash\nnpm run size\n```\n\n如果需要通过可视化报告分析包大小，只需要执行：\n\n```bash\nnpm run analyze\n```\n\n### 代码检查\n\n执行：\n\n```bash\nnpm run lint\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatouse%2Fzentao-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcatouse%2Fzentao-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatouse%2Fzentao-api/lists"}