summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/migration/comment.go3
-rw-r--r--modules/migration/issue.go13
-rw-r--r--modules/migration/review.go12
3 files changed, 23 insertions, 5 deletions
diff --git a/modules/migration/comment.go b/modules/migration/comment.go
index f994e972ed..92ce30e302 100644
--- a/modules/migration/comment.go
+++ b/modules/migration/comment.go
@@ -8,8 +8,7 @@ import "time"
// Commentable can be commented upon
type Commentable interface {
- GetLocalIndex() int64
- GetForeignIndex() int64
+ Reviewable
GetContext() DownloaderContext
}
diff --git a/modules/migration/issue.go b/modules/migration/issue.go
index 7cb9f84b0d..3d1d1b4e0d 100644
--- a/modules/migration/issue.go
+++ b/modules/migration/issue.go
@@ -34,6 +34,15 @@ func (issue *Issue) GetExternalName() string { return issue.PosterName }
// GetExternalID ExternalUserMigrated interface
func (issue *Issue) GetExternalID() int64 { return issue.PosterID }
-func (issue *Issue) GetLocalIndex() int64 { return issue.Number }
-func (issue *Issue) GetForeignIndex() int64 { return issue.ForeignIndex }
+func (issue *Issue) GetLocalIndex() int64 { return issue.Number }
+
+func (issue *Issue) GetForeignIndex() int64 {
+ // see the comment of Reviewable.GetForeignIndex
+ // if there is no ForeignIndex, then use LocalIndex
+ if issue.ForeignIndex == 0 {
+ return issue.Number
+ }
+ return issue.ForeignIndex
+}
+
func (issue *Issue) GetContext() DownloaderContext { return issue.Context }
diff --git a/modules/migration/review.go b/modules/migration/review.go
index a420c130c7..79e821b2e1 100644
--- a/modules/migration/review.go
+++ b/modules/migration/review.go
@@ -8,6 +8,16 @@ import "time"
// Reviewable can be reviewed
type Reviewable interface {
GetLocalIndex() int64
+
+ // GetForeignIndex presents the foreign index, which could be misused:
+ // For example, if there are 2 Gitea sites: site-A exports a dataset, then site-B imports it:
+ // * if site-A exports files by using its LocalIndex
+ // * from site-A's view, LocalIndex is site-A's IssueIndex while ForeignIndex is site-B's IssueIndex
+ // * but from site-B's view, LocalIndex is site-B's IssueIndex while ForeignIndex is site-A's IssueIndex
+ //
+ // So the exporting/importing must be paired, but the meaning of them looks confusing then:
+ // * either site-A and site-B both use LocalIndex during dumping/restoring
+ // * or site-A and site-B both use ForeignIndex
GetForeignIndex() int64
}
@@ -37,7 +47,7 @@ type Review struct {
// GetExternalName ExternalUserMigrated interface
func (r *Review) GetExternalName() string { return r.ReviewerName }
-// ExternalID ExternalUserMigrated interface
+// GetExternalID ExternalUserMigrated interface
func (r *Review) GetExternalID() int64 { return r.ReviewerID }
// ReviewComment represents a review comment