|
@@ -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 GetRepoStatus extends API {
|
|
|
constructor() {
|
|
@@ -27,7 +26,7 @@ class GetRepoStatus extends API {
|
|
|
...BaseStdResponse.ACCESS_DENIED
|
|
|
})
|
|
|
|
|
|
- let sql = 'SELECT state, path, url FROM repos WHERE create_user = ? AND id = ?'
|
|
|
+ let sql = 'SELECT name, logo, create_time, update_time, state, path, url FROM repos WHERE create_user = ? AND id = ?'
|
|
|
let r = await db.query(sql, [uuid, id])
|
|
|
if (!r || r.length === 0)
|
|
|
return res.json({
|
|
@@ -42,16 +41,35 @@ class GetRepoStatus extends API {
|
|
|
})
|
|
|
|
|
|
try {
|
|
|
- const clone_url = core_url + '/git/status'
|
|
|
- const response = await axios.post(clone_url, { uuid, repo_url: r[0].url })
|
|
|
- if (!response || !response.data)
|
|
|
- return res.json({
|
|
|
- ...BaseStdResponse.ERR,
|
|
|
- msg: '获取仓库状态失败!'
|
|
|
- })
|
|
|
+ const git = simpleGit()
|
|
|
+ await git.cwd(r[0].path)
|
|
|
+ let status = await git.status()
|
|
|
+ const branches = await git.branch()
|
|
|
+ const remoteBranches = Object.keys(branches.branches)
|
|
|
+ .filter(branch => branch.startsWith('remotes/origin/'))
|
|
|
+ .reduce((acc, branch) => {
|
|
|
+ const newBranchName = branch.replace('remotes/origin/', '')
|
|
|
+ acc[newBranchName] = {
|
|
|
+ ...branches.branches[branch],
|
|
|
+ name: newBranchName
|
|
|
+ };
|
|
|
+ return acc
|
|
|
+ }, {})
|
|
|
+
|
|
|
res.json({
|
|
|
...BaseStdResponse.OK,
|
|
|
- data: response.data
|
|
|
+ data: {
|
|
|
+ status,
|
|
|
+ branches: remoteBranches,
|
|
|
+ info: {
|
|
|
+ name: r[0].name,
|
|
|
+ url: r[0].url,
|
|
|
+ logo: r[0].logo,
|
|
|
+ create_time: r[0].create_time,
|
|
|
+ update_time: r[0].update_time,
|
|
|
+ state: r[0].state
|
|
|
+ },
|
|
|
+ }
|
|
|
})
|
|
|
|
|
|
} catch (error) {
|