diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2019-10-14 14:10:42 +0800 |
---|---|---|
committer | Lauris BH <lauris@nix.lv> | 2019-10-14 09:10:42 +0300 |
commit | e3e44a59d01da3af2be3a830f4a90394e7af4ff4 (patch) | |
tree | f66e8ead94693225668bacd0ba603bf3712aeae6 /models/issue.go | |
parent | ba201aaa44b19f633fab0c4682d5f97558b3205e (diff) | |
download | gitea-e3e44a59d01da3af2be3a830f4a90394e7af4ff4.tar.gz gitea-e3e44a59d01da3af2be3a830f4a90394e7af4ff4.zip |
Update migrated repositories' issues/comments/prs poster id if user has a github external user saved (#7751)
* update migrated issues/comments when login as github
* add get userid when migrating or login with github oauth2
* fix lint
* add migrations for repository service type
* fix build
* remove unnecessary dependencies on migrations
* add cron task to update migrations poster ids and fix posterid when migrating
* fix lint
* fix lint
* improve code
* fix lint
* improve code
* replace releases publish id to actual author id
* fix import
* fix bug
* fix lint
* fix rawdata definition
* fix some bugs
* fix error message
Diffstat (limited to 'models/issue.go')
-rw-r--r-- | models/issue.go | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/models/issue.go b/models/issue.go index 8ce7d496ab..fc675a3ffb 100644 --- a/models/issue.go +++ b/models/issue.go @@ -14,6 +14,7 @@ import ( "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" + "code.gitea.io/gitea/modules/structs" api "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/modules/util" @@ -32,7 +33,7 @@ type Issue struct { PosterID int64 `xorm:"INDEX"` Poster *User `xorm:"-"` OriginalAuthor string - OriginalAuthorID int64 + OriginalAuthorID int64 `xorm:"index"` Title string `xorm:"name"` Content string `xorm:"TEXT"` RenderedContent string `xorm:"-"` @@ -1947,3 +1948,16 @@ func (issue *Issue) ResolveMentionsByVisibility(ctx DBContext, doer *User, menti return } + +// UpdateIssuesMigrationsByType updates all migrated repositories' issues from gitServiceType to replace originalAuthorID to posterID +func UpdateIssuesMigrationsByType(gitServiceType structs.GitServiceType, originalAuthorID, posterID int64) error { + _, err := x.Table("issue"). + Where("repo_id IN (SELECT id FROM repository WHERE original_service_type = ?)", gitServiceType). + And("original_author_id = ?", originalAuthorID). + Update(map[string]interface{}{ + "poster_id": posterID, + "original_author": "", + "original_author_id": 0, + }) + return err +} |