Skip to content

Commit bd41a04

Browse files
lunnylafriks
authored andcommitted
Add extra user information when migrating release (#8331)
* add extra user information when migrating release * add migrations * fix tests
1 parent fb7c23f commit bd41a04

File tree

8 files changed

+55
-12
lines changed

8 files changed

+55
-12
lines changed

models/migrations/migrations.go

+2
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ var migrations = []Migration{
250250
NewMigration("delete orphaned attachments", deleteOrphanedAttachments),
251251
// v97 -> v98
252252
NewMigration("add repo_admin_change_team_access to user", addRepoAdminChangeTeamAccessColumnForUser),
253+
// v98 -> v99
254+
NewMigration("add original author name and id on migrated release", addOriginalAuthorOnMigratedReleases),
253255
}
254256

255257
// Migrate database to current version

models/migrations/v98.go

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Copyright 2019 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package migrations
6+
7+
import "github.com/go-xorm/xorm"
8+
9+
func addOriginalAuthorOnMigratedReleases(x *xorm.Engine) error {
10+
type Release struct {
11+
ID int64
12+
OriginalAuthor string
13+
OriginalAuthorID int64 `xorm:"index"`
14+
}
15+
16+
return x.Sync2(new(Release))
17+
}

models/release.go

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ type Release struct {
2626
PublisherID int64 `xorm:"INDEX"`
2727
Publisher *User `xorm:"-"`
2828
TagName string `xorm:"INDEX UNIQUE(n)"`
29+
OriginalAuthor string
30+
OriginalAuthorID int64 `xorm:"index"`
2931
LowerTagName string
3032
Target string
3133
Title string

modules/migrations/base/release.go

+3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ type Release struct {
2525
Body string
2626
Draft bool
2727
Prerelease bool
28+
PublisherID int64
29+
PublisherName string
30+
PublisherEmail string
2831
Assets []ReleaseAsset
2932
Created time.Time
3033
Published time.Time

modules/migrations/gitea.go

+14-12
Original file line numberDiff line numberDiff line change
@@ -175,18 +175,20 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
175175
var rels = make([]*models.Release, 0, len(releases))
176176
for _, release := range releases {
177177
var rel = models.Release{
178-
RepoID: g.repo.ID,
179-
PublisherID: g.doer.ID,
180-
TagName: release.TagName,
181-
LowerTagName: strings.ToLower(release.TagName),
182-
Target: release.TargetCommitish,
183-
Title: release.Name,
184-
Sha1: release.TargetCommitish,
185-
Note: release.Body,
186-
IsDraft: release.Draft,
187-
IsPrerelease: release.Prerelease,
188-
IsTag: false,
189-
CreatedUnix: timeutil.TimeStamp(release.Created.Unix()),
178+
RepoID: g.repo.ID,
179+
PublisherID: g.doer.ID,
180+
TagName: release.TagName,
181+
LowerTagName: strings.ToLower(release.TagName),
182+
Target: release.TargetCommitish,
183+
Title: release.Name,
184+
Sha1: release.TargetCommitish,
185+
Note: release.Body,
186+
IsDraft: release.Draft,
187+
IsPrerelease: release.Prerelease,
188+
IsTag: false,
189+
CreatedUnix: timeutil.TimeStamp(release.Created.Unix()),
190+
OriginalAuthor: release.PublisherName,
191+
OriginalAuthorID: release.PublisherID,
190192
}
191193

192194
// calc NumCommits

modules/migrations/github.go

+8
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,11 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease)
214214
name = *rel.Name
215215
}
216216

217+
var email string
218+
if rel.Author.Email != nil {
219+
email = *rel.Author.Email
220+
}
221+
217222
r := &base.Release{
218223
TagName: *rel.TagName,
219224
TargetCommitish: *rel.TargetCommitish,
@@ -222,6 +227,9 @@ func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease)
222227
Draft: *rel.Draft,
223228
Prerelease: *rel.Prerelease,
224229
Created: rel.CreatedAt.Time,
230+
PublisherID: *rel.Author.ID,
231+
PublisherName: *rel.Author.Login,
232+
PublisherEmail: email,
225233
Published: rel.PublishedAt.Time,
226234
}
227235

modules/migrations/github_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ func TestGitHubDownloadRepo(t *testing.T) {
167167
Body: "Forked source from Gogs into Gitea\n",
168168
Created: time.Date(2016, 10, 17, 02, 17, 59, 0, time.UTC),
169169
Published: time.Date(2016, 11, 17, 15, 37, 0, 0, time.UTC),
170+
PublisherID: 4726179,
171+
PublisherName: "bkcsoft",
170172
},
171173
}, releases[len(releases)-1:])
172174

templates/repo/release/list.tmpl

+7
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,15 @@
5454
</h3>
5555
<p class="text grey">
5656
<span class="author">
57+
{{if .OriginalAuthor}}
58+
<i class="fa fa-github" aria-hidden="true"></i>
59+
{{.OriginalAuthor}}
60+
{{else if .Publisher}}
5761
<img class="img-10" src="{{.Publisher.RelAvatarLink}}">
5862
<a href="{{AppSubUrl}}/{{.Publisher.Name}}">{{.Publisher.Name}}</a>
63+
{{else}}
64+
Ghost
65+
{{end}}
5966
</span>
6067
{{if .CreatedUnix}}<span class="time">{{TimeSinceUnix .CreatedUnix $.Lang}}</span>{{end}}
6168
<span class="ahead">{{$.i18n.Tr "repo.release.ahead" .NumCommitsBehind .Target | Str2html}}</span>

0 commit comments

Comments
 (0)