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 006756bed fix(gitlab): change type of createdDateto adapt scope helper
(#4666)
006756bed is described below
commit 006756bed4f38dd66a7a7ff0404f5d490d79e58a
Author: Warren Chen <[email protected]>
AuthorDate: Wed Mar 15 11:46:58 2023 +0800
fix(gitlab): change type of createdDateto adapt scope helper (#4666)
---
backend/helpers/pluginhelper/api/scope_helper.go | 7 ++++++-
backend/helpers/pluginhelper/api/scope_helper_test.go | 9 +++++++++
backend/plugins/gitlab/api/blueprint_V200_test.go | 2 +-
backend/plugins/gitlab/models/project.go | 2 +-
backend/plugins/gitlab/tasks/project_convertor.go | 6 +++---
backend/plugins/gitlab/tasks/project_extractor.go | 2 +-
6 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/backend/helpers/pluginhelper/api/scope_helper.go
b/backend/helpers/pluginhelper/api/scope_helper.go
index 5102eee88..57e508726 100644
--- a/backend/helpers/pluginhelper/api/scope_helper.go
+++ b/backend/helpers/pluginhelper/api/scope_helper.go
@@ -275,10 +275,15 @@ func setScopeFields(p interface{}, connectionId uint64,
createdDate *time.Time,
// set CreatedDate
createdDateField := pValue.FieldByName("CreatedDate")
- createdDateField.Set(reflect.ValueOf(createdDate))
+ if createdDateField.IsValid() {
+ createdDateField.Set(reflect.ValueOf(createdDate))
+ }
// set UpdatedDate
updatedDateField := pValue.FieldByName("UpdatedDate")
+ if !updatedDateField.IsValid() {
+ return
+ }
if updatedDate == nil {
// if updatedDate is nil, set UpdatedDate to be nil
updatedDateField.Set(reflect.Zero(updatedDateField.Type()))
diff --git a/backend/helpers/pluginhelper/api/scope_helper_test.go
b/backend/helpers/pluginhelper/api/scope_helper_test.go
index c90afffa4..f77acb079 100644
--- a/backend/helpers/pluginhelper/api/scope_helper_test.go
+++ b/backend/helpers/pluginhelper/api/scope_helper_test.go
@@ -180,6 +180,15 @@ func TestSetScopeFields(t *testing.T) {
if p.UpdatedDate != nil {
t.Errorf("UpdatedDate not set correctly, expected: %v, got:
%v", nil, p.UpdatedDate)
}
+
+ var p1 struct {
+ ConnectionId uint64 `json:"connectionId"
mapstructure:"connectionId" gorm:"primaryKey"`
+ GitlabId int `json:"gitlabId" mapstructure:"gitlabId"
gorm:"primaryKey"`
+
+ common.NoPKModel `json:"-" mapstructure:"-"`
+ }
+ setScopeFields(&p1, connectionId, &createdDate, &createdDate)
+
}
func TestReturnPrimaryKeyValue(t *testing.T) {
diff --git a/backend/plugins/gitlab/api/blueprint_V200_test.go
b/backend/plugins/gitlab/api/blueprint_V200_test.go
index 959ac59d1..0c0720fe2 100644
--- a/backend/plugins/gitlab/api/blueprint_V200_test.go
+++ b/backend/plugins/gitlab/api/blueprint_V200_test.go
@@ -66,7 +66,7 @@ func TestMakeDataSourcePipelinePlanV200(t *testing.T) {
Name: testName,
TransformationRuleId: testTransformationRuleId,
- CreatedDate: time.Time{},
+ CreatedDate: &time.Time{},
HttpUrlToRepo: testHttpUrlToRepo,
}
diff --git a/backend/plugins/gitlab/models/project.go
b/backend/plugins/gitlab/models/project.go
index 41c6855f5..8db83c195 100644
--- a/backend/plugins/gitlab/models/project.go
+++ b/backend/plugins/gitlab/models/project.go
@@ -40,7 +40,7 @@ type GitlabProject struct {
ForkedFromProjectWebUrl string `json:"forkedFromProjectWebUrl"
mapstructure:"forkedFromProjectWebUrl" gorm:"type:varchar(255)"`
HttpUrlToRepo string `json:"httpUrlToRepo"
gorm:"type:varchar(255)"`
- CreatedDate time.Time `json:"createdDate" mapstructure:"-"`
+ CreatedDate *time.Time `json:"createdDate" mapstructure:"-"`
UpdatedDate *time.Time `json:"updatedDate" mapstructure:"-"`
common.NoPKModel `json:"-" mapstructure:"-"`
}
diff --git a/backend/plugins/gitlab/tasks/project_convertor.go
b/backend/plugins/gitlab/tasks/project_convertor.go
index 3828b375e..24378a193 100644
--- a/backend/plugins/gitlab/tasks/project_convertor.go
+++ b/backend/plugins/gitlab/tasks/project_convertor.go
@@ -108,7 +108,7 @@ func convertToRepositoryModel(project
*models.GitlabProject) *code.Repo {
Url: project.WebUrl,
Description: project.Description,
ForkedFrom: project.ForkedFromProjectWebUrl,
- CreatedDate: &project.CreatedDate,
+ CreatedDate: project.CreatedDate,
UpdatedDate: project.UpdatedDate,
}
return domainRepository
@@ -122,7 +122,7 @@ func convertToBoardModel(project *models.GitlabProject)
*ticket.Board {
Name: project.Name,
Url: project.WebUrl,
Description: project.Description,
- CreatedDate: &project.CreatedDate,
+ CreatedDate: project.CreatedDate,
}
return domainBoard
}
@@ -143,7 +143,7 @@ func convertToCicdScopeModel(project *models.GitlabProject)
*devops.CicdScope {
Name: project.Name,
Url: project.WebUrl,
Description: project.Description,
- CreatedDate: &project.CreatedDate,
+ CreatedDate: project.CreatedDate,
UpdatedDate: project.UpdatedDate,
}
return domainCicdScope
diff --git a/backend/plugins/gitlab/tasks/project_extractor.go
b/backend/plugins/gitlab/tasks/project_extractor.go
index ff3d548bd..d8fb39e56 100644
--- a/backend/plugins/gitlab/tasks/project_extractor.go
+++ b/backend/plugins/gitlab/tasks/project_extractor.go
@@ -36,7 +36,7 @@ func ConvertProject(gitlabApiProject *GitlabApiProject)
*models.GitlabProject {
Visibility: gitlabApiProject.Visibility,
OpenIssuesCount: gitlabApiProject.OpenIssuesCount,
StarCount: gitlabApiProject.StarCount,
- CreatedDate: gitlabApiProject.CreatedAt.ToTime(),
+ CreatedDate: gitlabApiProject.CreatedAt.ToNullableTime(),
UpdatedDate:
helper.Iso8601TimeToTime(gitlabApiProject.LastActivityAt),
}
if gitlabApiProject.ForkedFromProject != nil {