Skip to content

Commit 84a7315

Browse files
committed
replace releases publish id to actual author id
1 parent d03d533 commit 84a7315

File tree

3 files changed

+50
-15
lines changed

3 files changed

+50
-15
lines changed

models/external_login_user.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -169,5 +169,9 @@ func UpdateMigrationsByType(tp structs.GitServiceType, externalUserID, userID in
169169
return err
170170
}
171171

172-
return UpdateCommentsMigrationsByType(tp, externalUserID, userID)
172+
if err := UpdateCommentsMigrationsByType(tp, externalUserID, userID); err != nil {
173+
return err
174+
}
175+
176+
return UpdateReleasesMigrationsByType(tp, externalUserID, userID)
173177
}

models/release.go

+13
Original file line numberDiff line numberDiff line change
@@ -366,3 +366,16 @@ func SyncReleasesWithTags(repo *Repository, gitRepo *git.Repository) error {
366366
}
367367
return nil
368368
}
369+
370+
// UpdateReleasesMigrationsByType updates all migrated repositories' releases from gitServiceType to replace originalAuthorID to posterID
371+
func UpdateReleasesMigrationsByType(gitServiceType GitServiceType, originalAuthorID, posterID int64) error {
372+
_, err := x.Table("release").
373+
Where("repo_id IN (SELECT id FROM repository WHERE original_service_type = ?)", gitServiceType).
374+
And("original_author_id = ?", originalAuthorID).
375+
Update(map[string]interface{}{
376+
"publisher_id": posterID,
377+
"original_author": "",
378+
"original_author_id": 0,
379+
})
380+
return err
381+
}

modules/migrations/gitea.go

+32-14
Original file line numberDiff line numberDiff line change
@@ -198,20 +198,38 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
198198
var rels = make([]*models.Release, 0, len(releases))
199199
for _, release := range releases {
200200
var rel = models.Release{
201-
RepoID: g.repo.ID,
202-
PublisherID: g.doer.ID,
203-
TagName: release.TagName,
204-
LowerTagName: strings.ToLower(release.TagName),
205-
Target: release.TargetCommitish,
206-
Title: release.Name,
207-
Sha1: release.TargetCommitish,
208-
Note: release.Body,
209-
IsDraft: release.Draft,
210-
IsPrerelease: release.Prerelease,
211-
IsTag: false,
212-
CreatedUnix: timeutil.TimeStamp(release.Created.Unix()),
213-
OriginalAuthor: release.PublisherName,
214-
OriginalAuthorID: release.PublisherID,
201+
RepoID: g.repo.ID,
202+
TagName: release.TagName,
203+
LowerTagName: strings.ToLower(release.TagName),
204+
Target: release.TargetCommitish,
205+
Title: release.Name,
206+
Sha1: release.TargetCommitish,
207+
Note: release.Body,
208+
IsDraft: release.Draft,
209+
IsPrerelease: release.Prerelease,
210+
IsTag: false,
211+
CreatedUnix: timeutil.TimeStamp(release.Created.Unix()),
212+
}
213+
214+
userid, ok := g.userMap[release.PublisherID]
215+
tp := g.gitServiceType.Name()
216+
if !ok && tp != "" {
217+
var err error
218+
userid, err = models.GetUserIDByExternalUserID(tp, fmt.Sprintf("%v", release.PublisherID))
219+
if err != nil {
220+
log.Error("GetUserIDByExternalUserID: %v", err)
221+
}
222+
if userid > 0 {
223+
g.userMap[release.PublisherID] = userid
224+
}
225+
}
226+
227+
if userid > 0 {
228+
rel.PublisherID = userid
229+
} else {
230+
rel.PublisherID = g.doer.ID
231+
rel.OriginalAuthor = release.PublisherName
232+
rel.OriginalAuthorID = release.PublisherID
215233
}
216234

217235
// calc NumCommits

0 commit comments

Comments
 (0)