Browse Source

🎈 perf: 优化仓库列表获取逻辑

Pchen. 2 weeks ago
parent
commit
b20ba35167
1 changed files with 17 additions and 10 deletions
  1. 17 10
      apis/Repos/GetRepoList.js

+ 17 - 10
apis/Repos/GetRepoList.js

@@ -2,8 +2,7 @@ const API = require("../../lib/API")
 const db = require("../../plugin/DataBase/db")
 const AccessControl = require("../../lib/AccessControl")
 const { BaseStdResponse } = require("../../BaseStdResponse")
-const axios = require("axios")
-const { core_url } = require('../../config.json')
+const simpleGit = require('simple-git')
 
 class GetRepoList extends API {
     constructor() {
@@ -49,15 +48,21 @@ class GetRepoList extends API {
                 data: []
             })
 
-        const status_url = core_url + '/git/status'
-
         try {
-            // 并行执行所有请求
-            const statusPromises = rows.map(item =>
-                axios.post(status_url, { uuid, repo_url: item.url, repo_id: item.id })
-                    .then(res => ({ ...item, status: res.data }))
-                    .catch(() => ({ ...item, status: null }))
-            )
+            const git = simpleGit()
+
+            const statusPromises = rows.map(async item => {
+                await git.cwd(item.path)
+
+                const status = await git.status()
+
+                return {
+                    ...item,
+                    status: {
+                        current: status.current
+                    }
+                }
+            })
 
             const items = await Promise.all(statusPromises)
 
@@ -66,11 +71,13 @@ class GetRepoList extends API {
                 data: items
             })
         } catch (error) {
+            console.error('获取仓库状态失败:', error)
             res.json({
                 ...BaseStdResponse.ERR,
                 message: '获取仓库状态失败'
             })
         }
+
     }
 }