mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	This commit adds support for specifying comment types when importing with `gitea restore-repo`. It makes it possible to import issue changes, such as "title changed" or "assigned user changed". An earlier version of this pull request was made by Matti Ranta, in https://future.projects.blender.org/blender-migration/gitea-bf/pulls/3 There are two changes with regard to Matti's original code: 1. The comment type was an `int64` in Matti's code, and is now using a string. This makes it possible to use `comment_type: title`, which is more reliable and future-proof than an index into an internal list in the Gitea Go code. 2. Matti's code also had support for including labels, but in a way that would require knowing the database ID of the labels before the import even starts, which is impossible. This can be solved by using label names instead of IDs; for simplicity I I left that out of this PR.
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2019 The Gitea Authors. All rights reserved.
 | 
						|
// Copyright 2018 Jonas Franz. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package migration
 | 
						|
 | 
						|
import "time"
 | 
						|
 | 
						|
// Commentable can be commented upon
 | 
						|
type Commentable interface {
 | 
						|
	GetLocalIndex() int64
 | 
						|
	GetForeignIndex() int64
 | 
						|
	GetContext() DownloaderContext
 | 
						|
}
 | 
						|
 | 
						|
// Comment is a standard comment information
 | 
						|
type Comment struct {
 | 
						|
	IssueIndex  int64 `yaml:"issue_index"`
 | 
						|
	Index       int64
 | 
						|
	CommentType string `yaml:"comment_type"` // see `commentStrings` in models/issues/comment.go
 | 
						|
	PosterID    int64  `yaml:"poster_id"`
 | 
						|
	PosterName  string `yaml:"poster_name"`
 | 
						|
	PosterEmail string `yaml:"poster_email"`
 | 
						|
	Created     time.Time
 | 
						|
	Updated     time.Time
 | 
						|
	Content     string
 | 
						|
	Reactions   []*Reaction
 | 
						|
	Meta        map[string]interface{} `yaml:"meta,omitempty"` // see models/issues/comment.go for fields in Comment struct
 | 
						|
}
 | 
						|
 | 
						|
// GetExternalName ExternalUserMigrated interface
 | 
						|
func (c *Comment) GetExternalName() string { return c.PosterName }
 | 
						|
 | 
						|
// ExternalID ExternalUserMigrated interface
 | 
						|
func (c *Comment) GetExternalID() int64 { return c.PosterID }
 |