mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-09-06 22:33:14 +00: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.
35 lines
1.1 KiB
Go
35 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 }
|