mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-26 06:16:56 +09:00
Adds a batched GraphQL path for GitHub migrations that fetches each issue or pull request together with its comments, reviews, reactions and timeline events instead of the REST N+1 pattern, sharply reducing rate-limit pressure on large repositories. - GraphQL is used for authenticated migrations with issues or pull requests and falls back to REST automatically when it fails - timeline events (close/reopen, lock, rename, label, milestone, merge, branch deletion, pin, auto-merge) are imported as typed comments showing their GitHub author - GitBucket issue migrations no longer stop after the first page, GitBucket sends no Link header Fixes: https://github.com/go-gitea/gitea/issues/13243 Fixes: https://github.com/go-gitea/gitea/issues/31856 Signed-off-by: David E. Lovas <david@rexovas.com> Co-authored-by: bircni <bircni@icloud.com> Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Giteabot <teabot@gitea.io>
34 lines
1.0 KiB
Go
34 lines
1.0 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 {
|
|
Reviewable
|
|
}
|
|
|
|
// 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]any `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 }
|