mirror of
https://github.com/hanzoai/forge.git
synced 2026-10-30 15:00:39 +00:00
Source files keep their SPDX-License-Identifier and Hanzo copyright line; the Gitea, Gogs and LFS Test Server copyrights they used to repeat now live once in NOTICE, alongside LICENSE. The header lint accepts any copyright line above the SPDX line, so it no longer demands an upstream one. Co-authored-by: Hanzo Dev <[email protected]>
68 lines
2.2 KiB
Go
68 lines
2.2 KiB
Go
// Copyright 2026 Hanzo AI, Inc. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package migration
|
|
|
|
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 forge 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
|
|
}
|
|
|
|
// enumerate all review states
|
|
const (
|
|
ReviewStatePending = "PENDING"
|
|
ReviewStateApproved = "APPROVED"
|
|
ReviewStateChangesRequested = "CHANGES_REQUESTED"
|
|
ReviewStateCommented = "COMMENTED"
|
|
ReviewStateRequestReview = "REQUEST_REVIEW"
|
|
)
|
|
|
|
// Review is a standard review information
|
|
type Review struct {
|
|
ID int64
|
|
IssueIndex int64 `yaml:"issue_index"`
|
|
ReviewerID int64 `yaml:"reviewer_id"`
|
|
ReviewerName string `yaml:"reviewer_name"`
|
|
Official bool
|
|
CommitID string `yaml:"commit_id"`
|
|
Content string
|
|
CreatedAt time.Time `yaml:"created_at"`
|
|
State string // PENDING, APPROVED, REQUEST_CHANGES, or COMMENT
|
|
Comments []*ReviewComment
|
|
}
|
|
|
|
// GetExternalName ExternalUserMigrated interface
|
|
func (r *Review) GetExternalName() string { return r.ReviewerName }
|
|
|
|
// GetExternalID ExternalUserMigrated interface
|
|
func (r *Review) GetExternalID() int64 { return r.ReviewerID }
|
|
|
|
// ReviewComment represents a review comment
|
|
type ReviewComment struct {
|
|
ID int64
|
|
InReplyTo int64 `yaml:"in_reply_to"`
|
|
Content string
|
|
TreePath string `yaml:"tree_path"`
|
|
DiffHunk string `yaml:"diff_hunk"`
|
|
Position int
|
|
Line int
|
|
CommitID string `yaml:"commit_id"`
|
|
PosterID int64 `yaml:"poster_id"`
|
|
Reactions []*Reaction
|
|
CreatedAt time.Time `yaml:"created_at"`
|
|
UpdatedAt time.Time `yaml:"updated_at"`
|
|
}
|