diff options
author | Sybren <122987084+drsybren@users.noreply.github.com> | 2023-01-19 03:14:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-18 21:14:56 -0500 |
commit | 151b1a9508d9a407163edbf3d726b4785afef5ce (patch) | |
tree | f74c4b5ba9989384bd51d0c642d2a08340765370 /models | |
parent | cdf53fa4a7f3f7094eec8742529783ae7ceffc8f (diff) | |
download | gitea-151b1a9508d9a407163edbf3d726b4785afef5ce.tar.gz gitea-151b1a9508d9a407163edbf3d726b4785afef5ce.zip |
Support importing comment types (#22510)
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.
Diffstat (limited to 'models')
-rw-r--r-- | models/issues/comment.go | 9 | ||||
-rw-r--r-- | models/issues/comment_test.go | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/models/issues/comment.go b/models/issues/comment.go index 87e6b0a229..91dc128277 100644 --- a/models/issues/comment.go +++ b/models/issues/comment.go @@ -175,6 +175,15 @@ func (t CommentType) String() string { return commentStrings[t] } +func AsCommentType(typeName string) CommentType { + for index, name := range commentStrings { + if typeName == name { + return CommentType(index) + } + } + return CommentTypeUnknown +} + // RoleDescriptor defines comment tag type type RoleDescriptor int diff --git a/models/issues/comment_test.go b/models/issues/comment_test.go index 0d0570ae34..f1232729f1 100644 --- a/models/issues/comment_test.go +++ b/models/issues/comment_test.go @@ -62,3 +62,10 @@ func TestFetchCodeComments(t *testing.T) { assert.NoError(t, err) assert.Len(t, res, 1) } + +func TestAsCommentType(t *testing.T) { + assert.Equal(t, issues_model.CommentTypeUnknown, issues_model.AsCommentType("")) + assert.Equal(t, issues_model.CommentTypeUnknown, issues_model.AsCommentType("nonsense")) + assert.Equal(t, issues_model.CommentTypeComment, issues_model.AsCommentType("comment")) + assert.Equal(t, issues_model.CommentTypePRUnScheduledToAutoMerge, issues_model.AsCommentType("pull_cancel_scheduled_merge")) +} |