summaryrefslogtreecommitdiffstats
path: root/modules/migrations
diff options
context:
space:
mode:
Diffstat (limited to 'modules/migrations')
-rw-r--r--modules/migrations/base/comment.go1
-rw-r--r--modules/migrations/base/issue.go1
-rw-r--r--modules/migrations/base/options.go20
-rw-r--r--modules/migrations/base/pullrequest.go1
-rw-r--r--modules/migrations/base/repo.go1
-rw-r--r--modules/migrations/gitea.go63
-rw-r--r--modules/migrations/gitea_test.go19
-rw-r--r--modules/migrations/github.go5
-rw-r--r--modules/migrations/github_test.go10
-rw-r--r--modules/migrations/migrate.go23
10 files changed, 73 insertions, 71 deletions
diff --git a/modules/migrations/base/comment.go b/modules/migrations/base/comment.go
index d89ec3a3f5..38c544d6e0 100644
--- a/modules/migrations/base/comment.go
+++ b/modules/migrations/base/comment.go
@@ -10,6 +10,7 @@ import "time"
// Comment is a standard comment information
type Comment struct {
IssueIndex int64
+ PosterID int64
PosterName string
PosterEmail string
Created time.Time
diff --git a/modules/migrations/base/issue.go b/modules/migrations/base/issue.go
index ddadd0c2b3..08d947b05d 100644
--- a/modules/migrations/base/issue.go
+++ b/modules/migrations/base/issue.go
@@ -10,6 +10,7 @@ import "time"
// Issue is a standard issue information
type Issue struct {
Number int64
+ PosterID int64
PosterName string
PosterEmail string
Title string
diff --git a/modules/migrations/base/options.go b/modules/migrations/base/options.go
index 262981b933..ba7fdc6815 100644
--- a/modules/migrations/base/options.go
+++ b/modules/migrations/base/options.go
@@ -12,15 +12,15 @@ type MigrateOptions struct {
AuthPassword string
Name string
Description string
+ OriginalURL string
- Wiki bool
- Issues bool
- Milestones bool
- Labels bool
- Releases bool
- Comments bool
- PullRequests bool
- Private bool
- Mirror bool
- IgnoreIssueAuthor bool // if true will not add original author information before issues or comments content.
+ Wiki bool
+ Issues bool
+ Milestones bool
+ Labels bool
+ Releases bool
+ Comments bool
+ PullRequests bool
+ Private bool
+ Mirror bool
}
diff --git a/modules/migrations/base/pullrequest.go b/modules/migrations/base/pullrequest.go
index 515cab3f91..42456fd314 100644
--- a/modules/migrations/base/pullrequest.go
+++ b/modules/migrations/base/pullrequest.go
@@ -15,6 +15,7 @@ type PullRequest struct {
Number int64
Title string
PosterName string
+ PosterID int64
PosterEmail string
Content string
Milestone string
diff --git a/modules/migrations/base/repo.go b/modules/migrations/base/repo.go
index 907d8fc09e..5cfb0de920 100644
--- a/modules/migrations/base/repo.go
+++ b/modules/migrations/base/repo.go
@@ -15,4 +15,5 @@ type Repository struct {
AuthUsername string
AuthPassword string
CloneURL string
+ OriginalURL string
}
diff --git a/modules/migrations/gitea.go b/modules/migrations/gitea.go
index 1df824c94f..b15aed5f4b 100644
--- a/modules/migrations/gitea.go
+++ b/modules/migrations/gitea.go
@@ -82,6 +82,7 @@ func (g *GiteaLocalUploader) CreateRepo(repo *base.Repository, opts base.Migrate
r, err := models.MigrateRepository(g.doer, owner, models.MigrateRepoOptions{
Name: g.repoName,
Description: repo.Description,
+ OriginalURL: repo.OriginalURL,
IsMirror: repo.IsMirror,
RemoteAddr: repo.CloneURL,
IsPrivate: repo.IsPrivate,
@@ -247,17 +248,19 @@ func (g *GiteaLocalUploader) CreateIssues(issues ...*base.Issue) error {
}
var is = models.Issue{
- RepoID: g.repo.ID,
- Repo: g.repo,
- Index: issue.Number,
- PosterID: g.doer.ID,
- Title: issue.Title,
- Content: issue.Content,
- IsClosed: issue.State == "closed",
- IsLocked: issue.IsLocked,
- MilestoneID: milestoneID,
- Labels: labels,
- CreatedUnix: util.TimeStamp(issue.Created.Unix()),
+ RepoID: g.repo.ID,
+ Repo: g.repo,
+ Index: issue.Number,
+ PosterID: g.doer.ID,
+ OriginalAuthor: issue.PosterName,
+ OriginalAuthorID: issue.PosterID,
+ Title: issue.Title,
+ Content: issue.Content,
+ IsClosed: issue.State == "closed",
+ IsLocked: issue.IsLocked,
+ MilestoneID: milestoneID,
+ Labels: labels,
+ CreatedUnix: util.TimeStamp(issue.Created.Unix()),
}
if issue.Closed != nil {
is.ClosedUnix = util.TimeStamp(issue.Closed.Unix())
@@ -293,11 +296,13 @@ func (g *GiteaLocalUploader) CreateComments(comments ...*base.Comment) error {
}
cms = append(cms, &models.Comment{
- IssueID: issueID,
- Type: models.CommentTypeComment,
- PosterID: g.doer.ID,
- Content: comment.Content,
- CreatedUnix: util.TimeStamp(comment.Created.Unix()),
+ IssueID: issueID,
+ Type: models.CommentTypeComment,
+ PosterID: g.doer.ID,
+ OriginalAuthor: comment.PosterName,
+ OriginalAuthorID: comment.PosterID,
+ Content: comment.Content,
+ CreatedUnix: util.TimeStamp(comment.Created.Unix()),
})
// TODO: Reactions
@@ -430,18 +435,20 @@ func (g *GiteaLocalUploader) newPullRequest(pr *base.PullRequest) (*models.PullR
HasMerged: pr.Merged,
Issue: &models.Issue{
- RepoID: g.repo.ID,
- Repo: g.repo,
- Title: pr.Title,
- Index: pr.Number,
- PosterID: g.doer.ID,
- Content: pr.Content,
- MilestoneID: milestoneID,
- IsPull: true,
- IsClosed: pr.State == "closed",
- IsLocked: pr.IsLocked,
- Labels: labels,
- CreatedUnix: util.TimeStamp(pr.Created.Unix()),
+ RepoID: g.repo.ID,
+ Repo: g.repo,
+ Title: pr.Title,
+ Index: pr.Number,
+ PosterID: g.doer.ID,
+ OriginalAuthor: pr.PosterName,
+ OriginalAuthorID: pr.PosterID,
+ Content: pr.Content,
+ MilestoneID: milestoneID,
+ IsPull: true,
+ IsClosed: pr.State == "closed",
+ IsLocked: pr.IsLocked,
+ Labels: labels,
+ CreatedUnix: util.TimeStamp(pr.Created.Unix()),
},
}
diff --git a/modules/migrations/gitea_test.go b/modules/migrations/gitea_test.go
index 22da7da171..88a3a6d218 100644
--- a/modules/migrations/gitea_test.go
+++ b/modules/migrations/gitea_test.go
@@ -34,16 +34,15 @@ func TestGiteaUploadRepo(t *testing.T) {
Name: repoName,
AuthUsername: "",
- Wiki: true,
- Issues: true,
- Milestones: true,
- Labels: true,
- Releases: true,
- Comments: true,
- PullRequests: true,
- Private: true,
- Mirror: false,
- IgnoreIssueAuthor: false,
+ Wiki: true,
+ Issues: true,
+ Milestones: true,
+ Labels: true,
+ Releases: true,
+ Comments: true,
+ PullRequests: true,
+ Private: true,
+ Mirror: false,
})
assert.NoError(t, err)
diff --git a/modules/migrations/github.go b/modules/migrations/github.go
index e6b532df9c..93ba108548 100644
--- a/modules/migrations/github.go
+++ b/modules/migrations/github.go
@@ -107,13 +107,13 @@ func (g *GithubDownloaderV3) GetRepoInfo() (*base.Repository, error) {
if err != nil {
return nil, err
}
-
// convert github repo to stand Repo
return &base.Repository{
Owner: g.repoOwner,
Name: gr.GetName(),
IsPrivate: *gr.Private,
Description: gr.GetDescription(),
+ OriginalURL: gr.GetHTMLURL(),
CloneURL: gr.GetCloneURL(),
}, nil
}
@@ -317,6 +317,7 @@ func (g *GithubDownloaderV3) GetIssues(page, perPage int) ([]*base.Issue, bool,
allIssues = append(allIssues, &base.Issue{
Title: *issue.Title,
Number: int64(*issue.Number),
+ PosterID: *issue.User.ID,
PosterName: *issue.User.Login,
PosterEmail: email,
Content: body,
@@ -359,6 +360,7 @@ func (g *GithubDownloaderV3) GetComments(issueNumber int64) ([]*base.Comment, er
}
allComments = append(allComments, &base.Comment{
IssueIndex: issueNumber,
+ PosterID: *comment.User.ID,
PosterName: *comment.User.Login,
PosterEmail: email,
Content: *comment.Body,
@@ -451,6 +453,7 @@ func (g *GithubDownloaderV3) GetPullRequests(page, perPage int) ([]*base.PullReq
Title: *pr.Title,
Number: int64(*pr.Number),
PosterName: *pr.User.Login,
+ PosterID: *pr.User.ID,
PosterEmail: email,
Content: body,
Milestone: milestone,
diff --git a/modules/migrations/github_test.go b/modules/migrations/github_test.go
index 700183bdc1..0f52a62eb2 100644
--- a/modules/migrations/github_test.go
+++ b/modules/migrations/github_test.go
@@ -68,6 +68,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
Owner: "go-gitea",
Description: "Git with a cup of tea, painless self-hosted git service",
CloneURL: "https://github.com/go-gitea/gitea.git",
+ OriginalURL: "https://github.com/go-gitea/gitea",
}, repo)
milestones, err := downloader.GetMilestones()
@@ -180,6 +181,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
Title: "Contribution system: History heatmap for user",
Content: "Hi guys,\r\n\r\nI think that is a possible feature, a history heatmap similar to github or gitlab.\r\nActually exists a plugin called Calendar HeatMap. I used this on mine project to heat application log and worked fine here.\r\nThen, is only a idea, what you think? :)\r\n\r\nhttp://cal-heatmap.com/\r\nhttps://github.com/wa0x6e/cal-heatmap\r\n\r\nReference: https://github.com/gogits/gogs/issues/1640",
Milestone: "1.7.0",
+ PosterID: 1520407,
PosterName: "joubertredrat",
State: "closed",
Created: time.Date(2016, 11, 02, 18, 51, 55, 0, time.UTC),
@@ -209,6 +211,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
Title: "display page revisions on wiki",
Content: "Hi guys,\r\n\r\nWiki on Gogs is very fine, I liked a lot, but I think that is good idea to be possible see other revisions from page as a page history.\r\n\r\nWhat you think?\r\n\r\nReference: https://github.com/gogits/gogs/issues/2991",
Milestone: "1.x.x",
+ PosterID: 1520407,
PosterName: "joubertredrat",
State: "open",
Created: time.Date(2016, 11, 02, 18, 57, 32, 0, time.UTC),
@@ -238,6 +241,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
Title: "audit logs",
Content: "Hi,\r\n\r\nI think that is good idea to have user operation log to admin see what the user is doing at Gogs. Similar to example below\r\n\r\n| user | operation | information |\r\n| --- | --- | --- |\r\n| joubertredrat | repo.create | Create repo MyProjectData |\r\n| joubertredrat | user.settings | Edit settings |\r\n| tboerger | repo.fork | Create Fork from MyProjectData to ForkMyProjectData |\r\n| bkcsoft | repo.remove | Remove repo MySource |\r\n| tboerger | admin.auth | Edit auth LDAP org-connection |\r\n\r\nThis resource can be used on user page too, as user activity, set that log row is public (repo._) or private (user._, admin.*) and display only public activity.\r\n\r\nWhat you think?\r\n\r\n[Chat summary from March 14, 2017](https://github.com/go-gitea/gitea/issues/8#issuecomment-286463807)\r\n\r\nReferences:\r\nhttps://github.com/gogits/gogs/issues/3016",
Milestone: "1.x.x",
+ PosterID: 1520407,
PosterName: "joubertredrat",
State: "open",
Created: time.Date(2016, 11, 02, 18, 59, 20, 0, time.UTC),
@@ -270,6 +274,7 @@ func TestGitHubDownloadRepo(t *testing.T) {
assert.EqualValues(t, []*base.Comment{
{
IssueIndex: 6,
+ PosterID: 4726179,
PosterName: "bkcsoft",
Created: time.Date(2016, 11, 02, 18, 59, 48, 0, time.UTC),
Content: `I would prefer a solution that is in the backend, unless it's required to have it update without reloading. Unfortunately I can't seem to find anything that does that :unamused:
@@ -288,6 +293,7 @@ Also this would _require_ caching, since it will fetch huge amounts of data from
},
{
IssueIndex: 6,
+ PosterID: 1520407,
PosterName: "joubertredrat",
Created: time.Date(2016, 11, 02, 19, 16, 56, 0, time.UTC),
Content: `Yes, this plugin build on front-end, with backend I don't know too, but we can consider make component for this.
@@ -306,6 +312,7 @@ In my case I use ajax to get data, but build on frontend anyway
},
{
IssueIndex: 6,
+ PosterID: 1799009,
PosterName: "xinity",
Created: time.Date(2016, 11, 03, 13, 04, 56, 0, time.UTC),
Content: `following @bkcsoft retention strategy in cache is a must if we don't want gitea to waste ressources.
@@ -345,6 +352,7 @@ something like in the latest 15days could be enough don't you think ?
Title: "Rename import paths: \"github.com/gogits/gogs\" -> \"github.com/go-gitea/gitea\"",
Content: "",
Milestone: "1.0.0",
+ PosterID: 7011819,
PosterName: "andreynering",
State: "closed",
Created: time.Date(2016, 11, 02, 17, 01, 19, 0, time.UTC),
@@ -380,6 +388,7 @@ something like in the latest 15days could be enough don't you think ?
Title: "Fix sender of issue notifications",
Content: "It is the FROM field in mailer configuration that needs be used,\r\nnot the USER field, which is for authentication.\r\n\r\nMigrated from https://github.com/gogits/gogs/pull/3616\r\n",
Milestone: "1.0.0",
+ PosterID: 289678,
PosterName: "strk",
State: "closed",
Created: time.Date(2016, 11, 02, 17, 24, 19, 0, time.UTC),
@@ -417,6 +426,7 @@ something like in the latest 15days could be enough don't you think ?
Title: "Use proper url for libravatar dep",
Content: "Fetch go-libravatar from its official source, rather than from an unmaintained fork\r\n",
Milestone: "1.0.0",
+ PosterID: 289678,
PosterName: "strk",
State: "closed",
Created: time.Date(2016, 11, 02, 17, 34, 31, 0, time.UTC),
diff --git a/modules/migrations/migrate.go b/modules/migrations/migrate.go
index 7fc7911f21..a86614c317 100644
--- a/modules/migrations/migrate.go
+++ b/modules/migrations/migrate.go
@@ -6,8 +6,6 @@
package migrations
import (
- "fmt"
-
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/migrations/base"
@@ -155,11 +153,6 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
if err != nil {
return err
}
- for _, issue := range issues {
- if !opts.IgnoreIssueAuthor {
- issue.Content = fmt.Sprintf("Author: @%s \n\n%s", issue.PosterName, issue.Content)
- }
- }
if err := uploader.CreateIssues(issues...); err != nil {
return err
@@ -175,11 +168,7 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
if err != nil {
return err
}
- for _, comment := range comments {
- if !opts.IgnoreIssueAuthor {
- comment.Content = fmt.Sprintf("Author: @%s \n\n%s", comment.PosterName, comment.Content)
- }
- }
+
allComments = append(allComments, comments...)
if len(allComments) >= commentBatchSize {
@@ -212,11 +201,6 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
return err
}
- for _, pr := range prs {
- if !opts.IgnoreIssueAuthor {
- pr.Content = fmt.Sprintf("Author: @%s \n\n%s", pr.PosterName, pr.Content)
- }
- }
if err := uploader.CreatePullRequests(prs...); err != nil {
return err
}
@@ -231,11 +215,6 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
if err != nil {
return err
}
- for _, comment := range comments {
- if !opts.IgnoreIssueAuthor {
- comment.Content = fmt.Sprintf("Author: @%s \n\n%s", comment.PosterName, comment.Content)
- }
- }
allComments = append(allComments, comments...)