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),
|
||||
// v97 -> v98
|
||||
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
|
||||
|
|
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"`
|
||||
Publisher *User `xorm:"-"`
|
||||
TagName string `xorm:"INDEX UNIQUE(n)"`
|
||||
OriginalAuthor string
|
||||
OriginalAuthorID int64 `xorm:"index"`
|
||||
LowerTagName string
|
||||
Target string
|
||||
Title string
|
||||
|
|
|
@ -25,6 +25,9 @@ type Release struct {
|
|||
Body string
|
||||
Draft bool
|
||||
Prerelease bool
|
||||
PublisherID int64
|
||||
PublisherName string
|
||||
PublisherEmail string
|
||||
Assets []ReleaseAsset
|
||||
Created time.Time
|
||||
Published time.Time
|
||||
|
|
|
@ -187,6 +187,8 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
|
|||
IsPrerelease: release.Prerelease,
|
||||
IsTag: false,
|
||||
CreatedUnix: timeutil.TimeStamp(release.Created.Unix()),
|
||||
OriginalAuthor: release.PublisherName,
|
||||
OriginalAuthorID: release.PublisherID,
|
||||
}
|
||||
|
||||
// calc NumCommits
|
||||
|
|
|
@ -214,6 +214,11 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease)
|
|||
name = *rel.Name
|
||||
}
|
||||
|
||||
var email string
|
||||
if rel.Author.Email != nil {
|
||||
email = *rel.Author.Email
|
||||
}
|
||||
|
||||
r := &base.Release{
|
||||
TagName: *rel.TagName,
|
||||
TargetCommitish: *rel.TargetCommitish,
|
||||
|
@ -222,6 +227,9 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease)
|
|||
Draft: *rel.Draft,
|
||||
Prerelease: *rel.Prerelease,
|
||||
Created: rel.CreatedAt.Time,
|
||||
PublisherID: *rel.Author.ID,
|
||||
PublisherName: *rel.Author.Login,
|
||||
PublisherEmail: email,
|
||||
Published: rel.PublishedAt.Time,
|
||||
}
|
||||
|
||||
|
|
|
@ -167,6 +167,8 @@ func TestGitHubDownloadRepo(t *testing.T) {
|
|||
Body: "Forked source from Gogs into Gitea\n",
|
||||
Created: time.Date(2016, 10, 17, 02, 17, 59, 0, time.UTC),
|
||||
Published: time.Date(2016, 11, 17, 15, 37, 0, 0, time.UTC),
|
||||
PublisherID: 4726179,
|
||||
PublisherName: "bkcsoft",
|
||||
},
|
||||
}, releases[len(releases)-1:])
|
||||
|
||||
|
|
|
@ -54,8 +54,15 @@
|
|||
</h3>
|
||||
<p class="text grey">
|
||||
<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}}">
|
||||
<a href="{{AppSubUrl}}/{{.Publisher.Name}}">{{.Publisher.Name}}</a>
|
||||
{{else}}
|
||||
Ghost
|
||||
{{end}}
|
||||
</span>
|
||||
{{if .CreatedUnix}}<span class="time">{{TimeSinceUnix .CreatedUnix $.Lang}}</span>{{end}}
|
||||
<span class="ahead">{{$.i18n.Tr "repo.release.ahead" .NumCommitsBehind .Target | Str2html}}</span>
|
||||
|
|
Loading…
Reference in a new issue