Browse Source

🐞 fix: 修复部分仓库信息获取接口的bug

Pchen. 3 months ago
parent
commit
3214872baa
2 changed files with 14 additions and 15 deletions
  1. 6 10
      apis/Repos/GetRepoLog.js
  2. 8 5
      apis/Repos/GitCodeStats.js

+ 6 - 10
apis/Repos/GetRepoLog.js

@@ -2,8 +2,7 @@ const API = require("../../lib/API")
 const AccessControl = require("../../lib/AccessControl")
 const { BaseStdResponse } = require("../../BaseStdResponse")
 const db = require("../../plugin/DataBase/db")
-const axios = require('axios')
-const { core_url } = require('../../config.json')
+const simpleGit = require('simple-git')
 
 class GetRepoLog extends API {
     constructor() {
@@ -42,16 +41,13 @@ class GetRepoLog extends API {
             })
 
         try {
-            const clone_url = core_url + '/git/log'
-            const response = await axios.post(clone_url, { uuid, repo_url: r[0].url })
-            if (!response || !response.data || response.data.code !== 200)
-                return res.json({
-                    ...BaseStdResponse.ERR,
-                    msg: '获取仓库历史失败!'
-                })
+            const git = simpleGit()
+            await git.cwd(r[0].path)
+            const commits = await git.log()
+            
             res.json({
                 ...BaseStdResponse.OK,
-                data: response.data
+                data: commits
             })
 
         } catch (error) {

+ 8 - 5
apis/Repos/GitCodeStats.js

@@ -124,27 +124,30 @@ class gitCodeStats extends API {
                 )
 
                 if (language) {
-                    const lines = await countLines(fullPath)
+                    const lines = await this.countLines(fullPath)
                     totalLines += lines
                     languageStats[language] = (languageStats[language] || 0) + lines
                 } else {
                     // 如果文件不属于任何已知语言,归类为其他
-                    const lines = await countLines(fullPath)
+                    const lines = await this.countLines(fullPath)
                     totalLines += lines
                     languageStats["Other"] = (languageStats["Other"] || 0) + lines
                 }
             }
         } catch (error) {
+            this.logger.error('获取仓库代码信息失败!' + error.stack)
             return res.json({
                 ...BaseStdResponse.ERR,
-                msg: '获取仓库信息失败!'
+                msg: '获取仓库代码信息失败!'
             })
         }
 
         res.json({
             ...BaseStdResponse.OK,
-            totalLines,
-            languageStats
+            data: {
+                totalLines,
+                languageStats
+            }
         })
     }
 }