You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by wa...@apache.org on 2022/12/01 07:34:24 UTC
[incubator-devlake] branch main updated: refactor(domain): rename fields in project pr metrics (#3829)
This is an automated email from the ASF dual-hosted git repository.
warren pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/main by this push:
new f22e10a77 refactor(domain): rename fields in project pr metrics (#3829)
f22e10a77 is described below
commit f22e10a770aa2a1c1f8698aefb2e3aa7b6c92249
Author: Warren Chen <yi...@merico.dev>
AuthorDate: Thu Dec 1 15:34:19 2022 +0800
refactor(domain): rename fields in project pr metrics (#3829)
---
.../domainlayer/crossdomain/project_pr_metric.go | 10 +++----
.../20221201_add_project_pr_metric.go} | 33 ++++++++++++----------
...{project_pr_metrics.go => project_pr_metric.go} | 12 ++++----
models/migrationscripts/register.go | 1 +
.../e2e/snapshot_tables/project_pr_metrics.csv | 2 +-
plugins/dora/tasks/change_lead_time_calculator.go | 28 +++++++++---------
6 files changed, 45 insertions(+), 41 deletions(-)
diff --git a/models/domainlayer/crossdomain/project_pr_metric.go b/models/domainlayer/crossdomain/project_pr_metric.go
index f6c43f22b..1a6755967 100644
--- a/models/domainlayer/crossdomain/project_pr_metric.go
+++ b/models/domainlayer/crossdomain/project_pr_metric.go
@@ -25,13 +25,13 @@ type ProjectPrMetric struct {
domainlayer.DomainEntity
ProjectName string `gorm:"primaryKey;type:varchar(100)"`
FirstCommitSha string
- CodingTimespan *int64
+ PrCodingTime *int64
FirstReviewId string
- ReviewLag *int64
- ReviewTimespan *int64
+ PrPickupTime *int64
+ PrReviewTime *int64
DeploymentId string
- DeployTimespan *int64
- ChangeTimespan *int64
+ PrDeployTime *int64
+ PrCycleTime *int64
}
func (ProjectPrMetric) TableName() string {
diff --git a/models/domainlayer/crossdomain/project_pr_metric.go b/models/migrationscripts/20221201_add_project_pr_metric.go
similarity index 54%
copy from models/domainlayer/crossdomain/project_pr_metric.go
copy to models/migrationscripts/20221201_add_project_pr_metric.go
index f6c43f22b..ea6328106 100644
--- a/models/domainlayer/crossdomain/project_pr_metric.go
+++ b/models/migrationscripts/20221201_add_project_pr_metric.go
@@ -15,25 +15,28 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package crossdomain
+package migrationscripts
import (
- "github.com/apache/incubator-devlake/models/domainlayer"
+ "github.com/apache/incubator-devlake/errors"
+ "github.com/apache/incubator-devlake/helpers/migrationhelper"
+ "github.com/apache/incubator-devlake/models/migrationscripts/archived"
+ "github.com/apache/incubator-devlake/plugins/core"
)
-type ProjectPrMetric struct {
- domainlayer.DomainEntity
- ProjectName string `gorm:"primaryKey;type:varchar(100)"`
- FirstCommitSha string
- CodingTimespan *int64
- FirstReviewId string
- ReviewLag *int64
- ReviewTimespan *int64
- DeploymentId string
- DeployTimespan *int64
- ChangeTimespan *int64
+type renameFiledsInProjectPrMetric struct{}
+
+func (u *renameFiledsInProjectPrMetric) Up(baseRes core.BasicRes) errors.Error {
+ return migrationhelper.AutoMigrateTables(
+ baseRes,
+ &archived.ProjectPrMetric{},
+ )
+}
+
+func (*renameFiledsInProjectPrMetric) Version() uint64 {
+ return 20221201000001
}
-func (ProjectPrMetric) TableName() string {
- return "project_pr_metrics"
+func (*renameFiledsInProjectPrMetric) Name() string {
+ return "rename fields in project pr metric tables"
}
diff --git a/models/migrationscripts/archived/project_pr_metrics.go b/models/migrationscripts/archived/project_pr_metric.go
similarity index 89%
rename from models/migrationscripts/archived/project_pr_metrics.go
rename to models/migrationscripts/archived/project_pr_metric.go
index 03e0f5252..10288a200 100644
--- a/models/migrationscripts/archived/project_pr_metrics.go
+++ b/models/migrationscripts/archived/project_pr_metric.go
@@ -20,14 +20,14 @@ package archived
type ProjectPrMetric struct {
DomainEntity
ProjectName string `gorm:"primaryKey;type:varchar(100)"`
- FirstReviewId string
FirstCommitSha string
- CodingTimespan *int64
- ReviewLag *int64
- ReviewTimespan *int64
+ PrCodingTime *int64
+ FirstReviewId string
+ PrPickupTime *int64
+ PrReviewTime *int64
DeploymentId string
- DeployTimespan *int64
- ChangeTimespan *int64
+ PrDeployTime *int64
+ PrCycleTime *int64
}
func (ProjectPrMetric) TableName() string {
diff --git a/models/migrationscripts/register.go b/models/migrationscripts/register.go
index 943616df1..1114d807c 100644
--- a/models/migrationscripts/register.go
+++ b/models/migrationscripts/register.go
@@ -61,5 +61,6 @@ func All() []core.MigrationScript {
new(addProjectToBluePrint),
new(addProjectIssueMetric),
new(addLabels),
+ new(renameFiledsInProjectPrMetric),
}
}
diff --git a/plugins/dora/e2e/snapshot_tables/project_pr_metrics.csv b/plugins/dora/e2e/snapshot_tables/project_pr_metrics.csv
index 9391c7c40..1c12449b6 100644
--- a/plugins/dora/e2e/snapshot_tables/project_pr_metrics.csv
+++ b/plugins/dora/e2e/snapshot_tables/project_pr_metrics.csv
@@ -1,4 +1,4 @@
-id,project_name,first_commit_sha,coding_timespan,first_review_id,review_lag,review_timespan,deployment_id,deploy_timespan,change_timespan
+id,project_name,first_commit_sha,pr_coding_time,first_review_id,pr_pickup_time,pr_review_time,deployment_id,pr_deploy_time,pr_cycle_time
github:GithubPullRequest:1:1043463302,project1,75ab753225b5b8acf3bc6e40e463b54b6800e7ed,,github:GithubPrReview:1:1098724785,8558,2859,task11,93134,104551
github:GithubPullRequest:1:1048233599,project1,4f8cdefc9a9d53af16dd482c61623312eb9e9b5e,,github:GithubPrReview:1:0,194,4033,task12,76605,80832
github:GithubPullRequest:1:1049191985,project1,4b71faf666833c0c7b915a512811e2c5e746d3de,1,github:GithubPrReview:1:1099918590,156,1712,task13,115026,116895
diff --git a/plugins/dora/tasks/change_lead_time_calculator.go b/plugins/dora/tasks/change_lead_time_calculator.go
index 1a66fc366..cf52ddac0 100644
--- a/plugins/dora/tasks/change_lead_time_calculator.go
+++ b/plugins/dora/tasks/change_lead_time_calculator.go
@@ -107,7 +107,7 @@ func CalculateChangeLeadTime(taskCtx core.SubTaskContext) errors.Error {
} else {
codingTime = codingTime / 60
}
- projectPrMetric.CodingTimespan = processNegativeValue(codingTime)
+ projectPrMetric.PrCodingTime = processNegativeValue(codingTime)
projectPrMetric.FirstCommitSha = firstCommit.Sha
}
firstReview, err := getFirstReview(pr.Id, pr.AuthorId, db)
@@ -115,8 +115,8 @@ func CalculateChangeLeadTime(taskCtx core.SubTaskContext) errors.Error {
return nil, err
}
if firstReview != nil {
- projectPrMetric.ReviewLag = processNegativeValue(int64(firstReview.CreatedDate.Sub(pr.CreatedDate).Minutes()))
- projectPrMetric.ReviewTimespan = processNegativeValue(int64(pr.MergedDate.Sub(firstReview.CreatedDate).Minutes()))
+ projectPrMetric.PrPickupTime = processNegativeValue(int64(firstReview.CreatedDate.Sub(pr.CreatedDate).Minutes()))
+ projectPrMetric.PrReviewTime = processNegativeValue(int64(pr.MergedDate.Sub(firstReview.CreatedDate).Minutes()))
projectPrMetric.FirstReviewId = firstReview.ReviewId
}
deployment, err := getDeployment(pr.MergeCommitSha, pr.BaseRepoId, deploymentDiffPairs, db)
@@ -125,27 +125,27 @@ func CalculateChangeLeadTime(taskCtx core.SubTaskContext) errors.Error {
}
if deployment != nil && deployment.TaskFinishedDate != nil {
timespan := deployment.TaskFinishedDate.Sub(*pr.MergedDate)
- projectPrMetric.DeployTimespan = processNegativeValue(int64(timespan.Minutes()))
+ projectPrMetric.PrDeployTime = processNegativeValue(int64(timespan.Minutes()))
projectPrMetric.DeploymentId = deployment.TaskId
} else {
log.Debug("deploy time of pr %v is nil\n", pr.PullRequestKey)
}
- projectPrMetric.ChangeTimespan = nil
+ projectPrMetric.PrCycleTime = nil
var result int64
- if projectPrMetric.CodingTimespan != nil {
- result += *projectPrMetric.CodingTimespan
+ if projectPrMetric.PrCodingTime != nil {
+ result += *projectPrMetric.PrCodingTime
}
- if projectPrMetric.ReviewLag != nil {
- result += *projectPrMetric.ReviewLag
+ if projectPrMetric.PrPickupTime != nil {
+ result += *projectPrMetric.PrPickupTime
}
- if projectPrMetric.ReviewTimespan != nil {
- result += *projectPrMetric.ReviewTimespan
+ if projectPrMetric.PrReviewTime != nil {
+ result += *projectPrMetric.PrReviewTime
}
- if projectPrMetric.DeployTimespan != nil {
- result += *projectPrMetric.DeployTimespan
+ if projectPrMetric.PrDeployTime != nil {
+ result += *projectPrMetric.PrDeployTime
}
if result > 0 {
- projectPrMetric.ChangeTimespan = &result
+ projectPrMetric.PrCycleTime = &result
}
return []interface{}{projectPrMetric}, nil
},