@@ -62,38 +62,50 @@ func insertIssue(sess *xorm.Session, issue *Issue) error {
62
62
if _ , err := sess .Insert (issueLabels ); err != nil {
63
63
return err
64
64
}
65
+
66
+ cols := make ([]string , 0 )
65
67
if ! issue .IsPull {
66
68
sess .ID (issue .RepoID ).Incr ("num_issues" )
69
+ cols = append (cols , "num_issues" )
67
70
if issue .IsClosed {
68
71
sess .Incr ("num_closed_issues" )
72
+ cols = append (cols , "num_closed_issues" )
69
73
}
70
74
} else {
71
75
sess .ID (issue .RepoID ).Incr ("num_pulls" )
76
+ cols = append (cols , "num_pulls" )
72
77
if issue .IsClosed {
73
78
sess .Incr ("num_closed_pulls" )
79
+ cols = append (cols , "num_closed_pulls" )
74
80
}
75
81
}
76
- if _ , err := sess .NoAutoTime ().Update (issue .Repo ); err != nil {
82
+ if _ , err := sess .NoAutoTime ().Cols ( cols ... ). Update (issue .Repo ); err != nil {
77
83
return err
78
84
}
79
85
86
+ cols = []string {"num_issues" }
80
87
sess .Incr ("num_issues" )
81
88
if issue .IsClosed {
82
89
sess .Incr ("num_closed_issues" )
90
+ cols = append (cols , "num_closed_issues" )
83
91
}
84
- if _ , err := sess .In ("id" , labelIDs ).NoAutoTime ().Update (new (Label )); err != nil {
92
+ if _ , err := sess .In ("id" , labelIDs ).NoAutoTime ().Cols ( cols ... ). Update (new (Label )); err != nil {
85
93
return err
86
94
}
87
95
88
96
if issue .MilestoneID > 0 {
97
+ cols = []string {"num_issues" }
89
98
sess .Incr ("num_issues" )
99
+ cl := "num_closed_issues"
90
100
if issue .IsClosed {
91
101
sess .Incr ("num_closed_issues" )
102
+ cols = append (cols , "num_closed_issues" )
103
+ cl = "(num_closed_issues + 1)"
92
104
}
93
105
94
106
if _ , err := sess .ID (issue .MilestoneID ).
95
- SetExpr ("completeness" , "num_closed_issues * 100 / num_issues" ).
96
- NoAutoTime ().
107
+ SetExpr ("completeness" , cl + " * 100 / ( num_issues + 1) " ).
108
+ NoAutoTime ().Cols ( cols ... ).
97
109
Update (new (Milestone )); err != nil {
98
110
return err
99
111
}
0 commit comments