diff --git a/backend/plugins/github/models/migrationscripts/20231018_modify_tool_github_milestones.go b/backend/plugins/github/models/migrationscripts/20231018_modify_tool_github_milestones.go new file mode 100644 index 00000000000..8be9249394e --- /dev/null +++ b/backend/plugins/github/models/migrationscripts/20231018_modify_tool_github_milestones.go @@ -0,0 +1,70 @@ +/* +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package migrationscripts + +import ( + "time" + + "github.com/apache/incubator-devlake/core/context" + "github.com/apache/incubator-devlake/core/errors" + "github.com/apache/incubator-devlake/core/models/migrationscripts/archived" + "github.com/apache/incubator-devlake/helpers/migrationhelper" + githubArchived "github.com/apache/incubator-devlake/plugins/github/models/migrationscripts/archived" +) + +type modifyGithubMilestone struct{} + +type GithubMilestone20231018 struct { + ConnectionId uint64 `gorm:"primaryKey"` + MilestoneId int `gorm:"primaryKey;autoIncrement:false"` + RepoId int + Number int + URL string + Title string + OpenIssues int + ClosedIssues int + State string + GithubCreatedAt time.Time + GithubUpdatedAt time.Time + ClosedAt *time.Time + + archived.NoPKModel +} + +func (GithubMilestone20231018) TableName() string { + return "_tool_github_milestones" +} + +func (script *modifyGithubMilestone) Up(basicRes context.BasicRes) errors.Error { + err := basicRes.GetDal().DropTables(&githubArchived.GithubMilestone{}) + if err != nil { + return err + } + return migrationhelper.AutoMigrateTables( + basicRes, + &GithubMilestone20231018{}, + ) +} + +func (*modifyGithubMilestone) Version() uint64 { + return 20231018122537 +} + +func (*modifyGithubMilestone) Name() string { + return "modify _tool_github_milestones table created_at and updated_at" +} diff --git a/backend/plugins/github/models/migrationscripts/register.go b/backend/plugins/github/models/migrationscripts/register.go index e8dc5b0df84..c101043bd43 100644 --- a/backend/plugins/github/models/migrationscripts/register.go +++ b/backend/plugins/github/models/migrationscripts/register.go @@ -44,5 +44,6 @@ func All() []plugin.MigrationScript { new(addFullName), new(addRawParamTableForScope), new(addDeploymentTable), + new(modifyGithubMilestone), } } diff --git a/backend/plugins/github/models/milestone.go b/backend/plugins/github/models/milestone.go index 4fadfca12a5..94a5aebd589 100644 --- a/backend/plugins/github/models/milestone.go +++ b/backend/plugins/github/models/milestone.go @@ -18,23 +18,24 @@ limitations under the License. package models import ( - "github.com/apache/incubator-devlake/core/models/common" "time" + + "github.com/apache/incubator-devlake/core/models/common" ) type GithubMilestone struct { - ConnectionId uint64 `gorm:"primaryKey"` - MilestoneId int `gorm:"primaryKey;autoIncrement:false"` - RepoId int - Number int - URL string - Title string - OpenIssues int - ClosedIssues int - State string - CreatedAt time.Time - UpdatedAt time.Time - ClosedAt *time.Time + ConnectionId uint64 `gorm:"primaryKey"` + MilestoneId int `gorm:"primaryKey;autoIncrement:false"` + RepoId int + Number int + URL string + Title string + OpenIssues int + ClosedIssues int + State string + GithubCreatedAt time.Time + GithubUpdatedAt time.Time + ClosedAt *time.Time common.NoPKModel } diff --git a/backend/plugins/github/tasks/milestone_converter.go b/backend/plugins/github/tasks/milestone_converter.go index 8b97beee511..6d872023dd4 100644 --- a/backend/plugins/github/tasks/milestone_converter.go +++ b/backend/plugins/github/tasks/milestone_converter.go @@ -100,7 +100,7 @@ func ConvertMilestones(taskCtx plugin.SubTaskContext) errors.Error { Name: response.GithubMilestone.Title, Url: response.GithubMilestone.URL, Status: response.GithubMilestone.State, - StartedDate: &response.GithubMilestone.CreatedAt, //GitHub doesn't give us a "start date" + StartedDate: &response.GithubMilestone.GithubCreatedAt, //GitHub doesn't give us a "start date" EndedDate: response.GithubMilestone.ClosedAt, CompletedDate: response.GithubMilestone.ClosedAt, OriginalBoardID: domainBoardId, diff --git a/backend/plugins/github/tasks/milestone_extractor.go b/backend/plugins/github/tasks/milestone_extractor.go index 28ea6006324..83e10b5cd99 100644 --- a/backend/plugins/github/tasks/milestone_extractor.go +++ b/backend/plugins/github/tasks/milestone_extractor.go @@ -110,18 +110,18 @@ func ExtractMilestones(taskCtx plugin.SubTaskContext) errors.Error { func convertGithubMilestone(response *MilestonesResponse, connectionId uint64, repositoryId int) *models.GithubMilestone { milestone := &models.GithubMilestone{ - ConnectionId: connectionId, - MilestoneId: response.Id, - RepoId: repositoryId, - Number: response.Number, - URL: response.Url, - Title: response.Title, - OpenIssues: response.OpenIssues, - ClosedIssues: response.ClosedIssues, - State: response.State, - ClosedAt: common.Iso8601TimeToTime(response.ClosedAt), - CreatedAt: response.CreatedAt.ToTime(), - UpdatedAt: response.UpdatedAt.ToTime(), + ConnectionId: connectionId, + MilestoneId: response.Id, + RepoId: repositoryId, + Number: response.Number, + URL: response.Url, + Title: response.Title, + OpenIssues: response.OpenIssues, + ClosedIssues: response.ClosedIssues, + State: response.State, + ClosedAt: common.Iso8601TimeToTime(response.ClosedAt), + GithubCreatedAt: response.CreatedAt.ToTime(), + GithubUpdatedAt: response.UpdatedAt.ToTime(), } return milestone }