Add extra user information when migrating release (#8331)
* add extra user information when migrating release * add migrations * fix tests
This commit is contained in:
		
					parent
					
						
							
								fb7c23f911
							
						
					
				
			
			
				commit
				
					
						bd41a04a56
					
				
			
		
					 8 changed files with 55 additions and 12 deletions
				
			
		| 
						 | 
					@ -250,6 +250,8 @@ var migrations = []Migration{
 | 
				
			||||||
	NewMigration("delete orphaned attachments", deleteOrphanedAttachments),
 | 
						NewMigration("delete orphaned attachments", deleteOrphanedAttachments),
 | 
				
			||||||
	// v97 -> v98
 | 
						// v97 -> v98
 | 
				
			||||||
	NewMigration("add repo_admin_change_team_access to user", addRepoAdminChangeTeamAccessColumnForUser),
 | 
						NewMigration("add repo_admin_change_team_access to user", addRepoAdminChangeTeamAccessColumnForUser),
 | 
				
			||||||
 | 
						// v98 -> v99
 | 
				
			||||||
 | 
						NewMigration("add original author name and id on migrated release", addOriginalAuthorOnMigratedReleases),
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Migrate database to current version
 | 
					// Migrate database to current version
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										17
									
								
								models/migrations/v98.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								models/migrations/v98.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					// Copyright 2019 The Gitea Authors. All rights reserved.
 | 
				
			||||||
 | 
					// Use of this source code is governed by a MIT-style
 | 
				
			||||||
 | 
					// license that can be found in the LICENSE file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package migrations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "github.com/go-xorm/xorm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func addOriginalAuthorOnMigratedReleases(x *xorm.Engine) error {
 | 
				
			||||||
 | 
						type Release struct {
 | 
				
			||||||
 | 
							ID               int64
 | 
				
			||||||
 | 
							OriginalAuthor   string
 | 
				
			||||||
 | 
							OriginalAuthorID int64 `xorm:"index"`
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return x.Sync2(new(Release))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -26,6 +26,8 @@ type Release struct {
 | 
				
			||||||
	PublisherID      int64       `xorm:"INDEX"`
 | 
						PublisherID      int64       `xorm:"INDEX"`
 | 
				
			||||||
	Publisher        *User       `xorm:"-"`
 | 
						Publisher        *User       `xorm:"-"`
 | 
				
			||||||
	TagName          string      `xorm:"INDEX UNIQUE(n)"`
 | 
						TagName          string      `xorm:"INDEX UNIQUE(n)"`
 | 
				
			||||||
 | 
						OriginalAuthor   string
 | 
				
			||||||
 | 
						OriginalAuthorID int64 `xorm:"index"`
 | 
				
			||||||
	LowerTagName     string
 | 
						LowerTagName     string
 | 
				
			||||||
	Target           string
 | 
						Target           string
 | 
				
			||||||
	Title            string
 | 
						Title            string
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,6 +25,9 @@ type Release struct {
 | 
				
			||||||
	Body            string
 | 
						Body            string
 | 
				
			||||||
	Draft           bool
 | 
						Draft           bool
 | 
				
			||||||
	Prerelease      bool
 | 
						Prerelease      bool
 | 
				
			||||||
 | 
						PublisherID     int64
 | 
				
			||||||
 | 
						PublisherName   string
 | 
				
			||||||
 | 
						PublisherEmail  string
 | 
				
			||||||
	Assets          []ReleaseAsset
 | 
						Assets          []ReleaseAsset
 | 
				
			||||||
	Created         time.Time
 | 
						Created         time.Time
 | 
				
			||||||
	Published       time.Time
 | 
						Published       time.Time
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -187,6 +187,8 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
 | 
				
			||||||
			IsPrerelease:     release.Prerelease,
 | 
								IsPrerelease:     release.Prerelease,
 | 
				
			||||||
			IsTag:            false,
 | 
								IsTag:            false,
 | 
				
			||||||
			CreatedUnix:      timeutil.TimeStamp(release.Created.Unix()),
 | 
								CreatedUnix:      timeutil.TimeStamp(release.Created.Unix()),
 | 
				
			||||||
 | 
								OriginalAuthor:   release.PublisherName,
 | 
				
			||||||
 | 
								OriginalAuthorID: release.PublisherID,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// calc NumCommits
 | 
							// calc NumCommits
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -214,6 +214,11 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease)
 | 
				
			||||||
		name = *rel.Name
 | 
							name = *rel.Name
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var email string
 | 
				
			||||||
 | 
						if rel.Author.Email != nil {
 | 
				
			||||||
 | 
							email = *rel.Author.Email
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	r := &base.Release{
 | 
						r := &base.Release{
 | 
				
			||||||
		TagName:         *rel.TagName,
 | 
							TagName:         *rel.TagName,
 | 
				
			||||||
		TargetCommitish: *rel.TargetCommitish,
 | 
							TargetCommitish: *rel.TargetCommitish,
 | 
				
			||||||
| 
						 | 
					@ -222,6 +227,9 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease)
 | 
				
			||||||
		Draft:           *rel.Draft,
 | 
							Draft:           *rel.Draft,
 | 
				
			||||||
		Prerelease:      *rel.Prerelease,
 | 
							Prerelease:      *rel.Prerelease,
 | 
				
			||||||
		Created:         rel.CreatedAt.Time,
 | 
							Created:         rel.CreatedAt.Time,
 | 
				
			||||||
 | 
							PublisherID:     *rel.Author.ID,
 | 
				
			||||||
 | 
							PublisherName:   *rel.Author.Login,
 | 
				
			||||||
 | 
							PublisherEmail:  email,
 | 
				
			||||||
		Published:       rel.PublishedAt.Time,
 | 
							Published:       rel.PublishedAt.Time,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -167,6 +167,8 @@ func TestGitHubDownloadRepo(t *testing.T) {
 | 
				
			||||||
			Body:            "Forked source from Gogs into Gitea\n",
 | 
								Body:            "Forked source from Gogs into Gitea\n",
 | 
				
			||||||
			Created:         time.Date(2016, 10, 17, 02, 17, 59, 0, time.UTC),
 | 
								Created:         time.Date(2016, 10, 17, 02, 17, 59, 0, time.UTC),
 | 
				
			||||||
			Published:       time.Date(2016, 11, 17, 15, 37, 0, 0, time.UTC),
 | 
								Published:       time.Date(2016, 11, 17, 15, 37, 0, 0, time.UTC),
 | 
				
			||||||
 | 
								PublisherID:     4726179,
 | 
				
			||||||
 | 
								PublisherName:   "bkcsoft",
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
	}, releases[len(releases)-1:])
 | 
						}, releases[len(releases)-1:])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,8 +54,15 @@
 | 
				
			||||||
							</h3>
 | 
												</h3>
 | 
				
			||||||
							<p class="text grey">
 | 
												<p class="text grey">
 | 
				
			||||||
								<span class="author">
 | 
													<span class="author">
 | 
				
			||||||
 | 
													{{if .OriginalAuthor}}
 | 
				
			||||||
 | 
														<i class="fa fa-github" aria-hidden="true"></i>
 | 
				
			||||||
 | 
														{{.OriginalAuthor}}
 | 
				
			||||||
 | 
													{{else if .Publisher}}
 | 
				
			||||||
									<img class="img-10" src="{{.Publisher.RelAvatarLink}}">
 | 
														<img class="img-10" src="{{.Publisher.RelAvatarLink}}">
 | 
				
			||||||
									<a href="{{AppSubUrl}}/{{.Publisher.Name}}">{{.Publisher.Name}}</a>
 | 
														<a href="{{AppSubUrl}}/{{.Publisher.Name}}">{{.Publisher.Name}}</a>
 | 
				
			||||||
 | 
													{{else}}
 | 
				
			||||||
 | 
														Ghost
 | 
				
			||||||
 | 
													{{end}}
 | 
				
			||||||
								</span>
 | 
													</span>
 | 
				
			||||||
								{{if .CreatedUnix}}<span class="time">{{TimeSinceUnix .CreatedUnix $.Lang}}</span>{{end}}
 | 
													{{if .CreatedUnix}}<span class="time">{{TimeSinceUnix .CreatedUnix $.Lang}}</span>{{end}}
 | 
				
			||||||
								<span class="ahead">{{$.i18n.Tr "repo.release.ahead" .NumCommitsBehind .Target | Str2html}}</span>
 | 
													<span class="ahead">{{$.i18n.Tr "repo.release.ahead" .NumCommitsBehind .Target | Str2html}}</span>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue