Skip to content

Commit 2546de9

Browse files
committed
添加分析进度
1 parent 7425d0e commit 2546de9

File tree

5 files changed

+33
-2
lines changed

5 files changed

+33
-2
lines changed

pkg/db/project.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type Project struct {
2424
Vul int `json:"vul"`
2525
DefaultBranch string `json:"default_branch"`
2626
LastScanTime string
27+
ProgressBar string `json:"progress_bar"`
2728
}
2829

2930
func AddProject(project Project) (int, int) {

pkg/runner/codeql.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package runner
22

33
import (
4+
"Yi/pkg/db"
45
"Yi/pkg/logging"
56
"Yi/pkg/utils"
67
"bytes"
@@ -34,7 +35,7 @@ func Analyze(database string, name string, language string, qls []string) map[st
3435

3536
logging.Logger.Infof("[[%s:%s]] analyze start ...", name, database)
3637
fileName := fmt.Sprintf("%s/%d.json", filePath, time.Now().Unix())
37-
for _, ql := range qls {
38+
for i, ql := range qls {
3839
cmd := exec.Command("codeql", "database", "analyze", "--rerun", database, Option.Path+ql, "--format=sarif-latest", "-o", fileName)
3940
var stdout, stderr bytes.Buffer
4041
cmd.Stdout = &stdout // 标准输出
@@ -54,9 +55,19 @@ func Analyze(database string, name string, language string, qls []string) map[st
5455
result += i
5556
}
5657
res[fileName] = result
58+
59+
ProgressBar[name] = float32(i) / float32(len(qls)) * 100
5760
}
5861

59-
logging.Logger.Infof("[[%s:%s]] analysis completed.", name, database)
62+
logging.Logger.Infof("[[%s:%s]] analysis completed.", name, database)
63+
record := db.Record{
64+
Project: name,
65+
Url: name,
66+
Color: "success",
67+
Title: name,
68+
Msg: fmt.Sprintf("%s 分析完毕", name),
69+
}
70+
db.AddRecord(record)
6071
return res
6172
}
6273

pkg/runner/options.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ var DirNames DirName
4343

4444
var Pwd string
4545

46+
var ProgressBar map[string]float32
47+
4648
// Languages Codeql支持的语言,这里要根据机器上的配置,若要支持其他语言,请自行安装语言,以及指定对应语言的 codeql 规则
4749
var Languages = []string{"Go", "Java"}
4850

@@ -106,4 +108,6 @@ func ParseArguments() {
106108
// 生成配置文件,并监控更改
107109
Init()
108110
HotConf()
111+
112+
ProgressBar = make(map[string]float32)
109113
}

pkg/web/router.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ func Init() {
9999
t, _ := time.Parse(time.RFC3339, pro.PushedAt)
100100
data[i].PushedAt = t.Format("2006-01-02 15:04:05")
101101
data[i].LastScanTime = data[i].UpdatedAt.Format("2006-01-02 15:04:05")
102+
probar := runner.ProgressBar[pro.Project]
103+
if probar != 0 {
104+
data[i].ProgressBar = fmt.Sprintf("%.f", probar) + "%"
105+
} else {
106+
data[i].ProgressBar = fmt.Sprintf("%.f", probar)
107+
}
108+
102109
}
103110

104111
p := utils.NewPaginator(c.Request, pageSize, total)

pkg/web/templates/index.tmpl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
.table tbody tr td{
1010
vertical-align: middle;
1111
}
12+
1213
</style>
1314
<title>Yi 以有算无</title>
1415
</head>
@@ -79,6 +80,7 @@
7980
<th class="text-center">Count</th>
8081
<th class="text-center">LastScanTime</th>
8182
<th class="text-center">PushedAt</th>
83+
<th class="text-center">Progress</th>
8284
</tr>
8385
</thead>
8486
<tbody>
@@ -117,6 +119,11 @@
117119

118120
<td class="text-center">{{ $value.LastScanTime }}</td>
119121
<td class="text-center">{{ $value.PushedAt }}</td>
122+
<td class="text-center">
123+
<div class="progress">
124+
<div class="progress-bar" role="progressbar" style="width: {{ $value.ProgressBar }}%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">{{ $value.ProgressBar }}</div>
125+
</div>
126+
</td>
120127
</tr>
121128
{{ else }}
122129
<tr>
@@ -127,6 +134,7 @@
127134
<td></td>
128135
<td></td>
129136
<td></td>
137+
<td></td>
130138
</tr>
131139
{{ end}}
132140
</tbody>

0 commit comments

Comments
 (0)